博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1565(状态压缩dp)
阅读量:4451 次
发布时间:2019-06-07

本文共 1857 字,大约阅读时间需要 6 分钟。

方格取数(1)

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 8170    Accepted Submission(s): 3095

Problem Description

给你一个n*n的格子的棋盘,每个格子里面有一个非负数。
从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。
 

 

Input

包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n<=20)
 

 

Output

对于每个测试实例,输出可能取得的最大的和
 

 

Sample Input

3
75 15 21
75 15 28
34 70 5
 

 

Sample Output

188
 
比较简单的状态压缩dp
1 //2016.9.8 2 #include
3 #include
4 #include
5 6 using namespace std; 7 8 int arr[22][22]; 9 int dp[22][20000], sum[22][20000];//dp[i][j]表示第i行使用第j种方法所能得到的最大值,sum[i][j]表示第i行使用第j种方法所得的和10 int state[20000];//表示可行的状态,即可行的取数方法11 int len, n;12 13 bool ok(int sta)//可行状态,即1的位置两两不相邻14 {15 return (sta&(sta<<1))==0?true:false;16 }17 18 int get_sum(int pos, int x)//求第pos行,使用x方法能取得的和19 {20 int sum = 0, cnt = 1;21 while(x)22 {23 sum += (x%2)*arr[pos][n-cnt];24 x >>= 1;25 cnt++;26 }27 return sum;28 }29 30 void init(int m)//初始化31 {32 len = 0;33 for(int i = 0; i < (1<
>n)46 {47 for(int i = 0; i < n; i++)48 for(int j = 0; j < n; j++)49 scanf("%d", &arr[i][j]);50 init(n);51 for(int i = 1; i < n; i++)//处理第i行52 for(int j = 0; j < len; j++)//采取第j种方法53 for(int k = 0; k < len; k++)//枚举上一行所采取的方法k54 if((state[j]&state[k])==0)//方法j、k可行。ps:要加括号,&的优先级比==还低,debug了半天一脸懵逼,真是醉了55 dp[i][j] = max(dp[i][j], dp[i-1][k]+sum[i][j]);//状态转移方程56 57 int ans = 0;58 for(int i = 0; i < len; i++)//找出最大值59 if(dp[n-1][i]>ans)60 ans = dp[n-1][i];61 62 cout<
<

 

转载于:https://www.cnblogs.com/Penn000/p/5854616.html

你可能感兴趣的文章
Geometry Imager Viewport Filter
查看>>
Guava API学习之Optional 判断对象是否为null
查看>>
九度oj 题目1025:最大报销额
查看>>
数字及字符串
查看>>
【转载】OmniGraffle (二)基础绘图和模具
查看>>
一些提高开发效率的 Category
查看>>
拓扑排序基础题——排序
查看>>
WebService测试案例
查看>>
donetcms与Discuz整合的webconfig设置
查看>>
excel 冻结多行
查看>>
个人草根站长如何靠广告联盟赚钱
查看>>
投稿系统中遇到的问题
查看>>
搭建keepalived+mysql主从复制高可用
查看>>
假如你在每一个变化中看见崭新的自己
查看>>
转:iphone 申请证书
查看>>
1204. Maze Traversal
查看>>
安装gitlab ce
查看>>
【Hadoop 分布式部署 八:分布式协作框架Zookeeper架构功能讲解 及本地模式安装部署和命令使用 】...
查看>>
cogs_396_魔术球问题_(最小路径覆盖+二分图匹配,网络流24题#4)
查看>>
WPF中异步更新UI元素
查看>>