P1373 小a和uim之大逃離

2022-08-12 22:12:16 字數 738 閱讀 3987

50分的做法是肯定能想出來的。設dp[i][j][k][l][2]表示當前走到\(i\)行\(j\)列,兩人瓶子的容量分別為\(k\)和\(l\),現在這一步是由誰走的。

但是顯然陣列開不下。轉移也挺麻煩的。

滿分做法:

直接把兩人瓶子的容量合成一維就可以了。合併為兩人容量的差值。

轉移有乙個問題:他們的差值可能是負的啊!

直接像求逆元那樣,在\(k+1\)這個膜裡面找到乙個等效的,存進去即可。

因為每一步只能走右或者走下,所以會從\((i-1,j)\)和\((i,j-1)\)轉移過來。

隨便欽定那個差值是誰跟誰的作差,然後不要弄混,就可以成功地轉移了。

**:

#includeconst int maxn = 801, maxk = 16;

const int mod = 1000000007;

int dp[maxn][maxn][maxk][2];

int a[maxn][maxn];

int n, m, k;

int main()

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

if(i - 1 >= 1)}}

}long long ans = 0;

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

}printf("%lld\n", ans);

return 0;

}

P1373 小a和uim之大逃離

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

P1373 小a和uim之大逃離

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

洛谷 P1373 小a和uim之大逃離

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