zoj 3471 Most Powerful (状态压缩dp~)
来源:互联网 发布:比较实用的软件 编辑:程序博客网 时间:2024/06/06 20:01
注意这里要求的是最多的能量,没有限制状态,反正只要最多就好了。这就是dp后还需要一个求ans的循环的原因
#include <cstdio>#include <cstring>#include <iostream>#define MAX 20using namespace std;int n;int map[MAX][MAX];int dp[2000];int main(void) { while (scanf("%d", &n) == 1 && n) { memset(map, 0, sizeof(map)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) scanf("%d", &map[i][j]); } // 0表示存在,1表示不存在 int state = (1 << n) - 1; memset(dp, 0, sizeof(dp)); for (int s = 0; s < state; s++) { for (int i = 1; i <= n; i++) { if (s & (1 << (i - 1))) //若第i个原子已经不存在了, //则不能进行i到j的转移 continue; for (int j = 1; j <= n; j++) //从i到j的转移 { if ((s & (1 << (j - 1))) || j == i) continue; if (dp[s | (1 << (j - 1))] < dp[s] + map[i][j]) dp[s | (1 << (j - 1))] = dp[s] + map[i][j]; } } } int ans = 0; for (int i = 0; i < state; i++) { ans = max(ans, dp[i]); } printf("%d\n", ans); } return 0;}
阅读全文
0 0
- zoj 3471 Most Powerful //状态压缩DP
- ZOJ 3471 Most Powerful 状态压缩DP
- zoj 3471 Most Powerful 状态压缩dp
- zoj 3471 Most Powerful (状态压缩dp)
- ZOJ 3471 Most Powerful(状态压缩DP)
- zoj 3471 Most Powerful(状态压缩+dp)
- ZOj 3471 Most Powerful 状态压缩DP
- ZOJ Most Powerful (状态压缩DP)
- ZOJ 3471Most Powerful(状态压缩DP)
- zoj 3471 Most Powerful(状态压缩DP)
- zoj 3471 Most Powerful (状态压缩dp~)
- ZOJ 3471 Most Powerful (状态压缩)
- Zoj 3471 Most Powerful 状态压缩
- ZOJ - 3471 Most Powerful (状态压缩)
- ZOJ 3471 Most Powerful (状态压缩)
- zoj3471 Most Powerful(状态压缩dp)
- 状态压缩DP-Most Powerful(POJ 3471)
- DP状态压缩:Most Powerful
- BZOJ 3714 [PA2014]Kuglarz
- win7环境python34安装scrapy框架
- 【小白的CFD之旅】18 控制方程基础
- ajax基础知识
- Python学习(8)--for循环
- zoj 3471 Most Powerful (状态压缩dp~)
- 转换成回文串-LintCode
- 1.10 字符菱形
- 清除浮动的几种方法
- iOS 技术支持网址
- 【小白的CFD之旅】19 来自计算网格的困惑
- Ubuntu16.04+QT5.9.2开发环境搭建
- 牛客网剑指Offer-镜像二叉树递归
- gcc编译参数