題目地址:POJ 3254
狀壓水題。
先預處理出每行所有可能出現的情況。然後可以用vector存起來。
然後先處理出第一行所有的情況。然後再從第二行開始不斷與上一行進行狀態轉移,狀態轉移很簡單就不說了。
最後統計出最後一行的個數和就可以了。
代碼如下;
#include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 const int mod=100000000; const int INF=0x3f3f3f3f; int a[20][20]; int dp[3][1<<13]; vectorvec[13]; bool Judge(int x, int y, int m) { int i; for(i=0; i0&&(j&(1<=mod) dp[i&1][tmp]%=mod; } } if(i==n-1) { ans+=dp[i&1][tmp]; if(ans>=mod) ans%=mod; //printf("%d\n",ans); } } } if(n==1) { ans=vec[0].size(); } printf("%d\n",ans); return 0; }
Hanoi塔問題,hanoi塔傳說在古代印度的貝拿勒斯聖廟裡
UVa 1584 Circular Sequence(環形串
課程首頁在:http://blog.csdn.net/
C++拾遺--多線程:原子操作解決線程沖突 C++拾遺-
3號盤子的目標柱是C,但是已經有了1號盤子,我們
hdu 3047 Zjnu Stadium Zjnu S