题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取!

分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是这个题目的输入确实让我很无语,开始的时候wa一次,后来改成了超时,最后还是参照别人的输入ac的!

代码实现:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; int n,map[][],dp[][(<<)+];
int a[],num; void chushihua()
{
int i,max=<<;
for(i=; i<max; i++)
if((i&(i<<))==)
a[num++]=i;
} int qiu(int r,int flag)
{
int i,sum=,x=<<(n-);
for(i=; i<=n; i++)
{
if((flag&x)!=)
sum=sum+map[r][i];
x=x>>;
}
return sum;
} void solve()
{
int res=,i,j,k,p=,max,temp;
max=<<n;
memset(dp,,sizeof(dp));
for(i=; i<=n; i++)
{
p=p^;
memset(dp[p],,sizeof(dp[p]));
for(j=; j<num&&a[j]<max; j++)
{
temp=qiu(i,a[j]);
for(k=; k<num&&a[k]<max; k++)
{
if(((a[j]&a[k])==)&&(((a[j]<<)&a[k])==)&&(((a[j]>>)&a[k])==))
{
if(dp[p][a[j]]<(temp+dp[-p][a[k]]))
dp[p][a[j]]=temp+dp[-p][a[k]];
if(res<dp[p][a[j]])
res=dp[p][a[j]];
}
}
}
}
printf("%d\n",res);
} int main()
{
char ch[],temp;
num=;
chushihua();
while(gets(ch))
{
int i , j ;
i = ;
do
{
if(ch[] == ) break ;
int len = strlen(ch);
j = ;
i++ ;
for(int c=; c<len; c++)
{
if(ch[c] == ' ') continue ;
j++ ;
map[i][j] = *(ch[c]-'') + ch[c+]-'' ;
c++ ;
}
}
while(gets(ch)!=NULL) ;
n = i ;
solve();
}
return ;
}

最新文章

  1. 黑马程序员----java基础笔记下(毕向东)
  2. 解决在IE中返回JSON格式的数据时提示下载的问题
  3. asp.net WebService异步
  4. onmouseleave与onmouseout区别
  5. Java基础——异常机制
  6. HDU猜数字
  7. Day9 进程同步锁 进程队列 进程池 生产消费模型 进程池 paramike模块
  8. gawk编程语言
  9. 深入学习css伪类和伪元素及其用法
  10. Charles抓包显示乱码解决方法
  11. JavaScript函数、闭包、原型、面向对象
  12. python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)
  13. Windows 2019 下安装Oracle18c
  14. tar.xz文件格式的压缩与解压
  15. SpringMVC系列(一)SpringMVC概述和搭建SpringMVC的第一个helloWord入门程序
  16. Vue随性小笔记
  17. js完成密码输入为空,和两次输入不一致
  18. Multicast Routing
  19. Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
  20. 997D Cycles in product

热门文章

  1. java传输json数据用md5加密过程
  2. windows条件下,Ping加上时间戳,并保存到文件,适用于测试网络
  3. 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法
  4. 285. Inorder Successor in BST
  5. POJ1019——Number Sequence(大数处理)
  6. struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
  7. mysql 转义字符和php addslashes
  8. 日期工具类 - DateUtil.java
  9. 甲骨文推出MySQL Fabric,简化MySQL的高可用性与可扩展性
  10. vim 添加到右键 windows