ZOJ 4257--Most Powerful(状压dp)
来源:互联网 发布:沈天津seo诊断 编辑:程序博客网 时间:2024/06/07 00:55
来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257
题意:不超过10种气体,两两之间相互碰撞可以产生一定的能量,如a碰b,那么b气体就消失,自身不能碰自身,问最后所能得到的最大能量。
分析:用10位的二进制中的0、1表示气体是否存在,dp[i]表示i状态时的最大能量。
#include<iostream>#include<algorithm>#include<iomanip>#include<cstring>#include<string>#include<cstdio>#include<cmath>#include<queue>#include<map>#include<set>using namespace std;int a[11][11];int dp[1<<11];int n;int main(){ while(cin>>n,n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>a[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(j==k) continue; if((i&(1<<k))) continue; int st=i|(1<<k); dp[st]=max(dp[st],dp[i]+a[j][k]); //cout<<dp[st]<<endl; } } } int ans=0; for(int i=0;i<(1<<n);i++) ans=max(ans,dp[i]); cout<<ans<<endl; }return 0;}
- ZOJ 4257--Most Powerful(状压dp)
- [ZOJ] 4257 Most Powerful [状压DP]
- ZOJ 3471 Most Powerful(状压DP)
- ZOJ 3471 Most Powerful(状压dp)
- ZOJ 3471 Most Powerful(状压DP)
- ZOJ 3471 Most Powerful(状压DP)
- Most Powerful (zoj 3471 状压dp 点集配对)
- zoj 3471 Most Powerful 状压dp(简单)
- Most Powerful - ZOJ 3471 状压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 4257 Most Powerful
- 状压dp Most Powerful
- ZOJ 3471Most Powerful(状态压缩DP)
- android权限大全
- 【Makefile】如何写Android.mk(整理)
- system()函数
- smarty常用方法
- JQuery的KinSlideshow插件打造超炫焦点轮播图,带参数说明
- ZOJ 4257--Most Powerful(状压dp)
- Android通过共享用户ID来实现多个Activity进程共享
- 进程同步与异步的概念
- 列表_下拉列表_可扩展的列表_滚动_画廊_图像切换_网格_标签_惰性装载
- 十一、从头到尾彻底解析Hash表算法
- Forefront Identity Manager 2010高效身份管理 (02): Forefront Identity Manager 2010 安装过程概述(上)
- shell-脚本入门
- JS里面怎么把字符串转换成Date
- Launcher模块总结