题目大意:有n种原子,两种原子相碰撞的话就会产生能量,当中的一种原子会消失。

问这n种原子能产生的能量最大是多少

解题思路:用0表示该原子还没消失。1表示该原子已经消失。那么就能够得到状态转移方程了

dp[state | (1 << i)] = max(dp[state | (1 << i)], dp[state] + power[j][i])

上面的方程表示的是在state的情况下。用j原子去碰撞i原子,i原子消失所能得到的最大能量

注意这题:产生的能量有可能是负的

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 15
#define maxn 1200
int power[N][N];
int dp[maxn];
int n; int main() {
while(scanf("%d", &n) != EOF && n) {
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
scanf("%d", &power[i][j]);
memset(dp, 0, sizeof(dp)); for(int i = 0; i < (1 << n); i++)
for(int j = 0; j < n; j++) {
if((i & (1 << j)))
continue;
for(int k = 0; k < n; k++) {
if(!(i & (1 << k)) && k != j) {
dp[i | (1 << j)] = max(dp[i | (1 << j)], dp[i] + power[k][j]);
}
}
}
int ans = 0;
for(int i = 0; i < (1 << n); i++)
ans = max(ans, dp[i]);
printf("%d\n", ans);
}
return 0;
}

ZOJ - 3471 Most Powerful (状态压缩)的更多相关文章

  1. zoj 3471 Most Powerful

    题目链接:zoj 3471 Most Powerful  作者:jostree 转载请说明出处 很经典的状态dp,使用i的二进制位表示粒子的状态,0表示存在,1表示不存在.dp[i]表示在状态i的情况 ...

  2. Fiber Network ZOJ 1967(Floyd+二进制状态压缩)

    Description Several startup companies have decided to build a better Internet, called the "Fibe ...

  3. zoj 3471 Most Powerful(状态压缩dp)

    Recently, researchers on Mars have discovered N powerful atoms. All of them are different. These ato ...

  4. ZOJ 3471 Most Powerful(DP + 状态压缩)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257 题目大意:有 n(2<=n<=10) 个原子,每两 ...

  5. zoj 3471 Most Powerful (有向图)最大生成树 状压dp

    题目链接 题意 \(N\)种气体,\(i\)气体与\(j\)气体碰撞会: 产生\(a[i][j]\)的威力: 导致\(j\)气体消失. 求产生威力之和的最大值. 思路 和前几题找图上路径的题不一样,该 ...

  6. ZOJ 3471 Most Powerful (状压DP,经典)

    题意: 有n个原子,每当两个原子碰撞时就会产生能量,并且消耗其中一个原子.已知每两个原子碰撞时消耗其中指定一个原子所产生的能量,问最多能产生多少能量? 思路: 一开始以为是找一个有序序列,使得能量最大 ...

  7. zoj 3471 Most Powerful(状压dp+Tsp问题+连续性问题)

    上来直接一波敲键盘,直接套Tsp问题的代码 然后WA 发现貌似这道题没有连续性. Tsp问题是一条路径,一个点到另一个点,多了一个限制,所以就需要加多一维 而这道题没有限制,也就是说那一维不需要加,我 ...

  8. ZOJ 3471 【状态压缩DP】

    题意: 有n种化学物质,他们彼此反应会有一种消失并释放出能量. 给出矩阵,第i行j列代表i和j反应j消失释放的能量. 求最大释放多少能量. 思路: 状态压缩DP,我是这么想的. 利用二进制0代表该物质 ...

  9. ZOJ 2563 Long Dominoes(状态压缩DP)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1563 题目大意:在h*w的矩阵里铺满1*3的小矩阵,共有多少种方法 ...

随机推荐

  1. java组件不存在解决方案:右侧Maven Projects展开后左上角第一个刷新按钮 刷新后就会从新加载所有java的依赖项了

    java组件不存在解决方案:右侧Maven Projects展开后左上角第一个刷新按钮 刷新后就会从新加载所有java的依赖项了 软件:idea 问题产生:其他同事进行开发,引入新java组件后提交 ...

  2. Adobe Dreamweaver CC 2014 代码颜色目录 dw

    他的颜色代码配置文件,不在安装目录下,这让我好找啊~ C:\Users\Administrator\AppData\Roaming\Adobe\Dreamweaver CC 2014\zh_CN\Co ...

  3. CAD参数绘制直线(网页版)

    用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...

  4. UML-画类图与交互图的顺序

    并行.画完交互图,在画类图.交替进行.

  5. Handler和内部类的正确用法

    PS:本文摘抄自<Android高级进阶>,仅供学习使用 Android代码中涉及线程间通信的地方经常会使用Handler,典型的代码结构如下. public class HandlerA ...

  6. css布局的各种FC简单介绍:BFC,IFC,GFC,FFC

    什么是FC? Formatting Context,格式化上下文,指页面中一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用. BFC 什么是BFC Block ...

  7. hibernate-validator验证请求参数

    开发接口要进行请求参数内容格式校验,比如在接收到请求参数后依次需要进行数据内容判空.数据格式规范校验等,十分麻烦,于是尝试用hibernate-validator进行参数校验,简单记录一下使用步骤: ...

  8. 百度富文本编辑器UEditor自定义上传图片接口

    如下图:  然后修改ueditor.all.js   

  9. hdu 1075

    #include<stdio.h> #include<string.h> #include<string> #include<iostream> #in ...

  10. Xterm256终端颜色的名称

    hi x016_Grey0 ctermfg=16 guifg=#000000 "rgb=0,0,0 hi x017_NavyBlue ctermfg=17 guifg=#00005f &qu ...