這道題狀態轉移方程是看題解才明白的
首先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和他的小夥伴都驚呆了!瞬間,...