hdu 2167(状态压缩基础题)
2024-10-19 04:26:39
题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取!
分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是这个题目的输入确实让我很无语,开始的时候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 ;
}
最新文章
- 黑马程序员----java基础笔记下(毕向东)
- 解决在IE中返回JSON格式的数据时提示下载的问题
- asp.net WebService异步
- onmouseleave与onmouseout区别
- Java基础——异常机制
- HDU猜数字
- Day9 进程同步锁 进程队列 进程池 生产消费模型 进程池 paramike模块
- gawk编程语言
- 深入学习css伪类和伪元素及其用法
- Charles抓包显示乱码解决方法
- JavaScript函数、闭包、原型、面向对象
- python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)
- Windows 2019 下安装Oracle18c
- tar.xz文件格式的压缩与解压
- SpringMVC系列(一)SpringMVC概述和搭建SpringMVC的第一个helloWord入门程序
- Vue随性小笔记
- js完成密码输入为空,和两次输入不一致
- Multicast Routing
- Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
- 997D Cycles in product
热门文章
- java传输json数据用md5加密过程
- windows条件下,Ping加上时间戳,并保存到文件,适用于测试网络
- 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法
- 285.	Inorder Successor in BST
- POJ1019——Number Sequence(大数处理)
- struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- mysql 转义字符和php addslashes
- 日期工具类 - DateUtil.java
- 甲骨文推出MySQL Fabric,简化MySQL的高可用性与可扩展性
- vim 添加到右键 windows