状态压缩 HDU 1565
多组数据
给你一个n*n的矩阵
不能相邻的取数 上下左右
求最大的和
#include<stdio.h>
#include<algorithm>
#include<string.h> using namespace std; int n;
int z[][];
int dp[][<<+],cnt; //dp和滚动数组差不多 推出的行只有相邻的有关系
int num[]; //用来记录 合法的状态 就是同行要不相邻 int main()
{
cnt=;
for(int i=;i<(<<);i++)
if((i&(i<<))==)
num[cnt++]=i; while(scanf("%d",&n)!=EOF)
{
for(int i=;i<n;i++)
for(int j=;j<n;j++)
scanf("%d",&z[i][j]);
memset(dp,,sizeof(dp));
int len=(<<n); for(int i=;i<n;i++)
{
int p=i&; //奇数偶数
for(int j=;j<cnt;j++)
{
if(num[j]>=len)
break;
int sum=;
for(int k=;k<n;k++) //和这个状态都是1 可以取
{
if((num[j]&(<<k)))
sum+=z[i][k];
}
int m1=;
for(int k=;k<cnt;k++)
{
if(num[j]>=len)
break;
if(!(num[j]&num[k])) //上面最大的合法的状态转移过来
m1=max(m1,dp[-p][num[k]]);
}
dp[p][num[j]]=sum+m1; //本行加上面的
}
}
int p=(n-)&; //最后奇偶
int ans=;
for(int i=;i<len;i++) //最大的状态
ans=max(dp[p][i],ans);
printf("%d\n",ans);
} return ;
}
状态压缩 HDU 1565的更多相关文章
- 状态压缩 HDU 3182
t组数据 n个汉堡 e的能量 接下来的2行 val n个 得到的权 cost n个 花去的能量 接下来n行 每行一个q q个数字 代表这类汉堡做好要的前提 每个汉堡只能用一次 #inclu ...
- 状态压缩 HDU 3091
多组数据 n个点m条边 求有几个经过所有的点的环 最好用__int64 #include<stdio.h> #include<algorithm> #include<st ...
- 状态压缩 hdu #10
You are playing CSGO. There are n Main Weapons and m Secondary Weapons in CSGO. You can only choose ...
- hdu 1565(状态压缩基础题)
题意:容易理解. 分析:这是我做的状态压缩第二题,一开始超内存了,因为数组开大了,后来超时了,因为能够成立的状态就那么多,所以你应该先把它抽出来!!总的来说还是比较简单的!! 代码实现: #inclu ...
- HDU 3605:Escape(最大流+状态压缩)
http://acm.hdu.edu.cn/showproblem.php?pid=3605 题意:有n个人要去到m个星球上,这n个人每个人对m个星球有一个选择,即愿不愿意去,"Y" ...
- [HDU 4336] Card Collector (状态压缩概率dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题目大意:有n种卡片,需要吃零食收集,打开零食,出现第i种卡片的概率是p[i],也有可能不出现卡 ...
- ACM: HDU 5418 Victor and World - Floyd算法+dp状态压缩
HDU 5418 Victor and World Time Limit:2000MS Memory Limit:131072KB 64bit IO Format:%I64d & ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
- HDU 4511 (AC自动机+状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4511 题目大意:从1走到N,中间可以选择性经过某些点,比如1->N,或1->2-> ...
随机推荐
- Maven学习(七)仓库
* Maven仓库 在项目开发中, 项目目录下往往会有一个lib目录,用来存放第三方依赖jar文件, 如spring log4j jar等文件, Maven仓库就是放置JAR文件(WAR,ZIP,P ...
- [No00002C]人的寿命应该能达到100至175岁-北大齐教授健康讲座笔录
人的寿命应该能达到100 至175 岁,为什么都没有达到呢?最主要一个原因就是我们不重视保健,不懂得保健的知识.很多人死于无知,这很冤枉啊! 大家知道怎么保健吗?国际上有个维多利亚宣言,宣言里有三 ...
- JavaScript 各种页面跳转方法
第一种: window.location.href="login.jsp?backurl=\"+window.location.href; 第二种: alert("返回& ...
- 重写setTimeout扩展参数
//判断函数行参长度来决定是否需要重写setTimeout,ie8以下为undefined if(window.setTimeout.length == undefined){ var __sto = ...
- centos7 安装拼音输入法(转载)
http://m.blog.csdn.net/article/details?id=52137523
- Cordova - 使用Cordova开发iOS应用实战2(生命周期、使用Safari调试)
Cordova - 使用Cordova开发iOS应用实战2(生命周期.使用Safari调试) 前文我们创建了一个简单的Cordova项目,结构如下: 1,Cordova生命周期事件 (1)device ...
- Linux shell循环
条件测试 格式 test condition 或 [ condition ] 使用方括号时,要注意在条件两边加上空格,如果有操作符,运算符之间也必须有空格 测试状态:测试的结果可以用$?的值来判断,0 ...
- C#一元运算重载的深入理解
using System; using System.Diagnostics; using System.Text; using System.Collections; using System.Co ...
- 批处理将字符串输出到Windows剪贴板
批处理将字符串输出到Windows剪贴板 2016-06-30 23:29 339人阅读 评论(0) 收藏 举报 版权声明:作者:N3verL4nd 出处:http://blog.csdn.net/x ...
- stack overflow错误分析
stack overflow(堆栈溢出)就是不顾堆栈中分配的局部数据块大小,向该数据块写入了过多的数据,导致数据越界,结果覆盖了老的堆栈数据. 或者解释为 在长字符串中嵌入一段代码,并将过程的返回地址 ...