懶得搞題目了
哦對了,這題雙倍經驗
裝壓dp
利用位運算很容易解決相鄰位的問題
其實我的還是太複雜了
具體的,更加好的位運算的寫法可以參考yl大佬,但是我也搞不到他**,因為他太強了。
然而他部落格停更了。。。。
#include#include#include#include#include#includeusing namespace std;
#define mod 100000000
#define inf 100000000
inline int read()
while(ch>='0'&&ch<='9')
return x*t;
}int f[15][1<<13];
int n,m,g[15];
bool check(int x)
int main()
} }int ans=0;
for(int i=0;i<(1
printf("%d\n",ans);
return 0;
}
洛谷 1879 玉公尺田
題目描述 農場主john新買了一塊長方形的新牧場,這塊牧場被劃分成m行n列 1 m 12 1 n 12 每一格都是一塊正方形的土地。john打算在牧場上的某幾格里種上美味的草,供他的奶牛們享用。遺憾的是,有些土地相當貧瘠,不能用來種草。並且,奶牛們喜歡獨佔一塊草地的感覺,於是john不會選擇兩塊相鄰...
Luogu P1879玉公尺田(狀壓DP)
題目鏈結 資料範圍這麼小,難度又這麼大,一般就是狀態壓縮dp了。對輸入進行處理,二進位制表示每一行的草地狀況。如111表示這一行草地肥沃,壓縮成7.所以f i j 表示第i行狀態為j時的方案數 狀態j指的是乙個二進位制集合,有牛在吃草的位置是1,不再吃草的位置是0 f i j sum f i 1 k...
狀壓DP 玉公尺田
農夫約翰的土地由m n個小方格組成,現在他要在土地裡種植玉公尺。非常遺憾,部分土地是不育的,無法種植。而且,相鄰的土地不能同時種植玉公尺,也就是說種植玉公尺的所有方格之間都不會有公共邊緣。現在給定土地的大小,請你求出共有多少種種植方法。土地上什麼都不種也算一種方法。輸入格式 第1行包含兩個整數m和n...