洛谷 P1373 小a和uim之大逃離 dp

2021-08-27 04:01:07 字數 792 閱讀 7454

給你乙個n*m的矩陣,每個格仔有乙個魔法值,小a和小b一起只能向右或者向下走,每次交替著吸取魔法,因為他們還修煉道術,所以只要是體內魔法值超過了k就會重新進行新的迴圈。每次都是小a先吸,可以從任何格仔開始,問你當小b吸完魔法能量以後,小a小b能量相等的機會為多少。

一開始沒看清楚題,然後設了個f[i][j][l][r],為走到第(i,j)這個點,小a的魔法值為l,小b的魔法值為r,顯然是錯的,因為起點可以是任意乙個點,你不知道這一步到底是誰吸能量,所以加多一維維護一下,f[i][j][l][r][0/1],好了,很簡單就設了出來,結果算了算超時了…心態有點**,然後設了乙個自己都不知道什麼的dp,過了樣例爆蛋…然後….看了一眼題解….

設f[i][j][h][0/1],為走到(i,j)這個點,他們的魔法差值為h,0是這一步小a吸能量,1是這一步小b吸能量。然後就很好求了….四個轉移方程,初始值也很簡單….答案就是每個點小b吸了以後差值為0的方案數..

#include

#include

#include

#include

#define mo 1000000007

#define ll long long

#define n 805

using namespace std;

int n,m,k,a[n][n],ans;

int f[n][n][16][2];

int main()

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

}printf("%d",ans);

}

洛谷 P1373 小a和uim之大逃離

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

洛谷P1373 小a和uim之大逃離

我好弱啊,根本做不出啊 我開始懷疑我學了動規沒.首先瓶子容量要 然後小a和uim是一起走的,只是輪流吸魔液而已。開乙個陣列f i j k p 表示在 i,j 格仔處,二人魔液相差k,是第p個人吸。那麼uim吸魔液可以看成是小a扔掉一些魔液。bob表示瓶子容量,得到狀態轉移方程 f i j k 0 f...

洛谷p1373 小a和uim之大逃離

題目大意 小a和uim在乙個n m的矩陣內,矩陣的每乙個格仔有魔液,小a和uim各有乙個魔瓶,只能向下或者向右走,逃離的要求是 最後一步由uim走到且小a和uim魔瓶內的魔液等量。魔液量要 k 1 題意 可以從任何一點開始,問有多少種逃離方法。先從重疊子問題開始思考狀態,對於每乙個格仔i,j,可以是...