狀壓DP入門NO 1洛谷 P1879玉公尺地

2021-08-28 08:14:50 字數 675 閱讀 3398

題目鏈結

code:

//2018-09-17 提高+

//狀壓dp

#include#include#define mod 100000000

using namespace std;

long long n,m,ans;

int map[13][13];

long long f[1<<12][13];

int y[13],sign[1<<12];

int main() }

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

//列舉每一行

for(int j=0;j<(1

if(((j&y[i-1])==j) && sign[j])

//如果土地肥沃,且當前狀態左右不衝突

for(int k=0;k<(1

if(((k&y[i])==k)&&!(j&k)&&sign[k])

f[k][i]=(f[k][i]+f[j][i-1])%mod;

//當前行的狀態只會收上一行的影響

for(int i=0;i<(1

cout

}//by yfengzi

狀壓dp 洛谷P2622

狀壓dp 洛谷p2622 現有n盞燈,以及m個按鈕。每個按鈕可以同時控制這n盞燈 按下了第i個按鈕,對於所有的燈都有乙個效果。按下i按鈕對於第j盞燈,是下面3中效果之一 如果a i j 為1,那麼當這盞燈開了的時候,把它關上,否則不管 如果為 1的話,如果這盞燈是關的,那麼把它開啟,否則也不管 如果...

洛谷2704 狀壓dp

思路 這個狀壓確實挺強。第i行的不僅僅和i 1行有關係,還和i 2行有關係。一般的思路好像解決不了問題,咋搞?我們定義乙個陣列 dp 105 1 10 1 10 dp i t1 t2 i表示的是當前行,t1表示的是當前行的狀態,t2表示的是i 1行的狀態。假設t3表示的是i 2行的狀態,列舉i 2行...

洛谷P1052 過河 狀壓dp

在河上有一座獨木橋,乙隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點 0,1,l 其中l是橋的長度 座標為0的點表示橋的起點,座標為l的點表示橋的終點。青蛙從橋的起...