狀態壓縮模版2 選數

2022-06-02 09:30:15 字數 761 閱讀 5266

這是第二道模版題,然後的話這道模版題其實和上一題

這道題其實二進位制的思想會體現的更加明顯,因為的話我們一旦把我們需要的數轉化成二進位制之後,然後乙個乙個去判斷,因為這種做法真的真的太神奇了,所以我覺得我講不太通,就直接放**吧

所以直接看**吧

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8int f[16][1

<<15];/*

狀態壓縮,二進位制*/9

int a[16][16],v[1

<<15],vn,bin[16

],n;

10/*

bin記錄2的多少次方

*/11

intmain()

1242 v[++vn]=x;/*

這是一種合法情況,所以我們就加進去,下面可以for一遍

*/43}44

}45for(int i=2;i<=n;i++)/*

第一行已經處理完了,所以從第二行開始

*/4667}

68}69int ans=0;70

for(int i=1;i<=vn;i++) ans=max(ans,f[n][v[i]]);

71 printf("

%d\n

",ans);

72return0;

73 }

狀態壓縮模版3 地雷

首先這個應該可以說是我短時間內的這個部落格,也就是說很長的一段時間應該都不會再去寫部落格了,當然有喜歡的東西我還是要記錄下來,所以不多說,看一下這道題 時間限制 1 sec 記憶體限制 4 mb 提交 188 解決 111 提交 狀態 討論版 命題人 admin 題目描述 題意相信大家都玩過掃雷的遊...

BZOJ 2734 集合選數(狀態壓縮DP)

題意 給出乙個由1到n的數字組成的集合。定義合法子集為若x在子集中則2x 3x均不能在子集中。求有多少個合法的子集。思路 1 3 9 2 6 18 4 12 36 對於上面的矩陣,我們發現就等價於不選相鄰數字的方案數。因此列舉每個還沒有用到的數字,建立以該數字為左上角的矩陣。接著就是狀態壓縮dp。i...

狀態壓縮 方格取數

標籤 acm 題目 給你乙個n n的格仔的棋盤,每個格仔裡面有乙個非負數。從中取出若干個數,使得任意的兩個數所在的格仔沒有公共邊,就是說所取的數所在的2個格仔不能相鄰,並且取出的數的和最大。input 包括多個測試例項,每個測試例項包括乙個整數n 和n n個非負數 n 20 output 對於每個測...