洛谷 1373 小a和uim之大逃離

2021-09-25 11:28:29 字數 835 閱讀 6257

這道題狀態轉移方程是看題解才明白的

首先f[i][j][p][0/1]表示在i,j的時候差值為p,最後一步是小a走為0,最後一步是uim走為1

至於為什麼乙個是減乙個是加,因為第一步是小a走的,所以uim走的時候是縮小差值,而小a走的時候是擴大差值,故乙個加乙個減

可以寫出狀態轉移方程

f[i][j][p][0] += f[i - 1][j][(p - a[i][j] + k) % k][1]

f[i][j][p][0] += f[i][j - 1][(p - a[i][j] + k) % k][1]

f[i][j][p][0] += f[i - 1][j][(p + a[i][j]) % k][0]

f[i][j][p][0] += f[i][j - 1][(p + a[i][j]) % k][1]

詳見**

#includeusing namespace std;

int n,m,k;

const int m = 800;

const int mod = 1000000007;

int a[m + 5][m + 5];

int f[m + 5][m + 5][20][2];

int main()

int ans = 0;

for(int i = 1;i <= n;i ++)

for(int j = 1;j <= m;j ++)

ans = (ans + f[i][j][0][1]) % mod;

cout << ans;

return 0;

}

洛谷1373小a和uim之大逃離

小a和uim來到雨林中探險。突然一陣北風吹來,一片烏雲從北部天邊急湧過來,還伴著一道道閃電,一陣陣雷聲。剎那間,狂風大作,烏雲布滿了天空,緊接著豆大的雨點從天空中打落下來,只見前方出現了乙個披頭散髮 青面獠牙的怪物,低沉著聲音說 呵呵,既然你們來到這,只能活下來乙個!小a和他的小夥伴都驚呆了!瞬間,...

洛谷1373 小a和uim之大逃離

傳送門 題目描述 瞬間,地面上出現了乙個n m的巨幅矩陣,矩陣的每個格仔上有一坨0 k不等量的魔液。怪物各給了小a和uim乙個魔瓶,說道,你們可以從矩陣的任乙個格仔開始,每次向右或向下走一步,從任乙個格仔結束。開始時小a用魔瓶吸收地面上的魔液,下一步由uim吸收,如此交替下去,並且要求最後一步必須由...

洛谷 P1373 小a和uim之大逃離

小a和uim來到雨林中探險。突然一陣北風吹來,一片烏雲從北部天邊急湧過來,還伴著一道道閃電,一陣陣雷聲。剎那間,狂風大作,烏雲布滿了天空,緊接著豆大的雨點從天空中打落下來,只見前方出現了乙個披頭散髮 青面獠牙的怪物,低沉著聲音說 呵呵,既然你們來到這,只能活下來乙個!小a和他的小夥伴都驚呆了!瞬間,...