雅禮聯考DAY02 Path

2021-08-21 11:07:27 字數 1093 閱讀 1910

給定乙個 n∗ m 的網格,你在左下角 (n,1),你只能往前走或者右拐,障礙和走過的點不能走。求走到 (y,x) 的方案數 mod k 的值。

n,m ≤ 100,k ≤ 10^9.

考慮當前走到了乙個點,剩下的能走的範圍是乙個矩形。

於是倒著dp,設fp

,x1,

y1,x

2,y2

f p,

x1,y

1,x2

,y

2表示當前剩餘矩形的左上角右下角的座標是(x1,y1)、(x2,y2),當前方向是p,注意一定在角上。

很容易想到列舉拐彎點來轉移,複雜度o(

n5) o(n

5)

,t飛了。

其實很多拐彎點的貢獻和可以就是乙個矩形的值,優化轉移,複雜度o(

n4) o(n

4)

以矩形周長分層dp,滾動優化,空間即可優化下來。

初值就是重點在矩形角上且方向指向它。

code:

#include

#include

#define fo(i, x, y) for(int i = x; i <= y; i ++)

#define max(a, b) ((a) > (b) ? (a) : (b))

#define min(a, b) ((a) < (b) ? (a) : (b))

using

namespace

std;

const

int n = 110;

char s[n][n];

int n, m, k, p, q;

int b1[n][n][n], b2[n][n][n];

int f[2][4][n][n][n], o;

int main() else

if(t == 1) else

if(t == 2) else

if(t == 3)

f[o][t][x1][x2][y1] %= k;}}

}}

}printf("%d\n", f[o][3][1][n][1]);

}

雅禮聯考DAY2總結

成功被flag。並沒有翻盤。了。又是60分,mdzz。其實我今天不是很懂怎麼回事。第一題被卡log丟了40分,第二題被卡空間掉了50分,生無可戀。day1也是。t2網路掛了丟了100分,t3開小了掛了40分。如果網路正常。如果我空間開的正常點,不要老想著多水分。我就是高一第7了。感覺以前太浪,什麼做...

JZ雅禮聯考 Binary 題解

給定乙個長度為n的整數數列a和q次操作 修改操作 形如 1 x y,表示將ax 的值修改為y 詢問操作 形如 2 x y,表示詢問 n 1 ai x a ndy 的值。n,q 105 0 ai x,y 220 題目怎麼說怎麼做。二進位制總共只有20位,直接記錄每一位為1的有多少個數,假設記為cnt ...

JZOJ4015 雅禮聯考DAY01 數列

題目的意思很明確,看看資料範圍就覺得有點神奇,先看前面7個資料,這個就直接模擬就好了。在看8 14,此時的模數比較小,就知道應該是找迴圈節。然後就只剩下最後的了,有個特殊條件,看看怎樣利用,利用一下費馬小定理,就愉快地解決了這題。include include define ll long long...