zoj-3471 Most powful
题意:任意两个能量球相撞,得到一个能量,此能量消失,问你最后能得到的最大能量
题解:利用二进制压缩逆推,由11111状态推到00001等状态。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int M = (1<<11)+3;
int dp[M],a[M];
int map[15][15];
int main(){int T,n;while(cin >> n,n){for(int i = 0;i < n;i ++){for(int j = 0;j < n;j++){cin >> map[i][j];}}int cnt = 1 << n;for(int i = cnt-1;i>=0;i-- ){dp[i] = 0;for(int j = 0;j < n;j ++){int ret = 1 << j;if(!(i&ret)) continue ;for(int k = 0;k < n;k++){int res = 1 << k;if(res&i) continue;if(k == j) continue;dp[i] = max(dp[i],dp[i|res] + map[j][k]);}}}int ans = -1;for(int i = 0;i < cnt;i++) ans = max(ans,dp[i]);//寻找状态只剩一个气体的最大值cout << ans <<endl;}
}
zoj-3471 Most powful相关推荐
- ZOJ 3471 压缩状态DP
这个问题要看状态怎么想,第一种直接的想法是1代表未合并,状态就从1111111 转移到 带有1个0,然后带有两个0, 但是这样子编程非常不直观.换一种思路,0代表未合并,但是我可以先合并前几个,就是说 ...
- [置顶] 状态压缩DP 简单入门题 11题
1.每一行用一个二进制数表示, 有些二进制数是题目中不合法的状态,我们可以预处理出一行合法状态的个数,在递推的过程中复杂度就会大大降低. POJ 3254 Corn Fields ...
- 状态压缩dp学习小记part2
继续学习状态压缩的相关知识. 本来准备继续按照上篇博文里提到的那篇论文继续学习,但被矩形完全覆盖虐了回来,决定先做些其他的题增进理解之后再回来做. Zoj 3471 Most Powerful 题目链 ...
- ZOJ 2723 Semi-Prime ||ZOJ 2060 Fibonacci Again 水水水!
两题水题: 1.如果一个数能被分解为两个素数的乘积,则称为Semi-Prime,给你一个数,让你判断是不是Semi-Prime数. 2.定义F(0) = 7, F(1) = 11, F(n) = F( ...
- zoj 1204 Additive equations
ACCEPT acm作业 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=204 因为老师是在集合那里要我们做这道题.所以我很是天 ...
- 【HDU/POJ/ZOJ】Calling Extraterrestrial Intelligence Again (素数打表模板)
http://poj.org/problem?id=1411 POJ http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=168 ...
- 模拟 ZOJ 3878 Convert QWERTY to Dvorak
题目传送门 1 /* 2 模拟:手敲map一一映射,累! 3 除了忘记读入字符串不能用gets用getline外还是很顺利的AC了:) 4 */ 5 #include <cstdio> 6 ...
- 矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
题目传送门 1 /* 2 题意:加上适当的括号,改变计算顺序使得总的计算次数最少 3 矩阵连乘积问题,DP解决:状态转移方程: 4 dp[i][j] = min (dp[i][k] + dp[k+1] ...
- 台式机dp接口_台式机成就3471和战99,哪个更好?对比分析
导读:成就3471和战99,均为品牌成套机,价格4千元左右,是否值得入手?请往下看: 戴尔(DELL)成就3471: 1.硬件点评下: 主板:小型机箱,主板接口很丰富,M2.0的Pic-E接口,sat ...
- ZOJ 3597 Hit the Target! (线段树扫描线 -- 矩形所能覆盖的最多的点数)
ZOJ 3597 题意是说有n把枪,有m个靶子,每把枪只有一发子弹(也就是说一把枪最多只能打一个靶子), 告诉你第 i 把枪可以打到第j个靶, 现在等概率的出现一个连续的P把枪,在知道这P把枪之后,你 ...
最新文章
- 大学生学单片机怎么入门?
- spring boot系列03--spring security (基于数据库)登录和权限控制(下)
- 51单片机串口通信(字符串接收和发送)
- 深入浅出 Java 8 Lambda 表达式
- 数学建模:人口增长模型
- series 锐捷rgrsr20_锐捷RG-RSR20-04E路由器
- 国内装备制造业为什么需要项目管理
- ps如何创造图层蒙版
- Python学习笔记:第十四站 百宝箱
- ubuntu20.04鼠标只能移动不能点击+键盘无法输入问题
- mmdetection - config配置文件之schedule(learning rate)
- JS——背景色的滑动效果以及输入框的状态切换效果实现
- 算法竞赛命题指南(命题流程、Polygon的使用等)
- SNARK超详细解释,从GGPR13到Groth16
- 已知点的经纬度坐标计算/读取DEM高程信息/海拔高度
- beego使用API自动化文档生成swagger时,routers目录下无法生成commentsRouter_controllers.go文件
- Mifare S50控制条件
- 3大利器推荐,帮你写出规范漂亮的python代码
- 秋招C++开发学习之路day30
- macOS实现词典正常查询维基百科