/******
题意:从一个矩阵中选出一些数,选出的数不能相邻,求能选出的最大的和;
思路:状压DP 也可以用什么流做,不过现在不懂图论
*******/
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#define INF 0xfffffff
using namespace std;
int dp[20][17777], a[20][20], cnt, s[1<<20], num1[20][17777], n;
int num(int i, int k)
{
int ans = 0, j;
for(j = 0; j < n; j++) if(k & (1 << j)) ans += a[i][j];
return ans;
}
......
阅读全文