HDU 1565 方格取數

2021-06-13 13:30:35 字數 571 閱讀 9023

第一道狀態壓縮dp,比較簡單,做得也比較暴力,不過還挺適合入門,。。貼個**紀念一下

#include #include #include #include #include #define pub push_back

#define ll __int64

using namespace std;

const int n = 25;

const int m = 18000;

int dp[n][m], g[n][n], sum[n][m];

int getsum(int r, int num)

return tot;

}int main()

int res = 0;

for(i = 1;i <= n;i++)

for(j = 0;j < v.size();j++)

for(k = 0;k < v.size();k++)

if((v[j] & v[k]) == 0)

cout << res << endl;

}return 0;

}

HDU1565方格取數

典型的狀態壓縮dp問題。第i行的取法只受到第i 1行的影響。首先每一行的取法要相容 不能有兩個相鄰 然後相鄰行之間也要相容。將每乙個格仔看做兩種狀態,1表示取,0表示不取。這樣每一行就是乙個01串,恰好可以看做是乙個二進位制數,那麼該二進位制數對應的十進位制整數可以唯一的表示為當前第 i 行的狀態。...

HDU 1565 方格取數 1

hdu 1565 方格取數 1 我的第乙個狀態壓縮dp 給你乙個n n的格仔的棋盤,每個格仔裡面有乙個非負數,從中取出若干個數,使得任意的兩個數所在的格仔沒有公共邊,就是說所取的數所在的2個格仔不能相鄰,並且取出的數的和最大 3 75 15 21 75 15 28 34 70 5 188對於每乙個數...

HDU1565 方格取數 1

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