zoj 3471 状压DP
来源:互联网 发布:万网域名登录地址 编辑:程序博客网 时间:2024/06/11 00:49
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257
难度远不及我之前发的...
但是我第一次的思路竟然错了,因为dp方程想设计成二维,但是弄错,也没发现原因,,,
改为一维:dp[s]:状态为s的时候,得到的最大能量,其中s第i位为1表示,i已经被撞毁
#include <cstdio>#include <cstring>#include <algorithm>#include <string>#include <iostream>#include <cmath>#include <map>#include <queue>using namespace std;#define ls(rt) rt*2#define rs(rt) rt*2+1#define ll long long#define rep(i,s,e) for(int i=s;i<e;i++)#define repe(i,s,e) for(int i=s;i<=e;i++)#define CL(a,b) memset(a,b,sizeof(a))#define IN(s) freopen(s,"r",stdin)#define OUT(s) freopen(s,"w",stdout)const int MAXN = 12;int n;int mat[MAXN][MAXN];int dp[1<<MAXN];int scnt;void init(){ CL(mat,0); CL(dp,0);}int main(){ //IN("zoj3471.txt"); int w; while(~scanf("%d",&n) && n) { init(); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { scanf("%d",&w); mat[i][j]=max(mat[i][j],w); } int S=1<<n; int ans=0; for(int s=0;s<S;s++) { for(int i=0;i<n;i++) { if((s&(1<<i)))continue;//i不在s //if(s == (1<<i))dp[s][i]=0; // else for(int j=0;j<n;j++) { if(i == j)continue; if(!(s&(1<<j)) || !mat[i][j])continue;//j在s,但<span style="font-family: Arial, Helvetica, sans-serif;">dp[s^(1<<j)]中j不在s</span> dp[s]=max(dp[s],dp[s^(1<<j)]+mat[i][j]);//用i撞j //ans=max(dp[s][i],ans); } } } for(int s=0;s<S;s++) ans=max(dp[s],ans); printf("%d\n",ans); } return 0;}
0 0
- ZOJ 3471 状压DP
- zoj 3471 状压DP
- ZOJ 3471 状压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 3471 Most Powerful(状压DP)
- ZOJ 3471 Most Powerful (状压DP)
- ZOJ 3471 Most Powerful (状压dp)
- ZOJ 3471 Most Powerful 状压dp
- ZOJ 3471 状态DP
- ZOJ 3777(状压dp)
- zoj 3777 状压dp
- zoj 3675 状压dp
- zoj 3812 状压dp
- jstl 获取Parameter参数 , switch使用
- 基于MVC4+EasyUI的Web开发框架经验总结
- unix时间互转
- 进程监控
- ——JDK1.5新特性之泛型
- zoj 3471 状压DP
- Libgdx 实现技能冷却效果
- 两种高性能 I/O 设计模式 Reactor 和 Proactor
- 关于Qt各个版本的下载来源说明
- 1987年国际C语言混乱代码大赛获奖的一行代码
- cin、cin.get()、cin.getline()、getline()、gets()函数的用法
- Vim -> 移动光标
- cocos2dx添加Admob广告中遇到的问题
- 线段树(待续)spojGSS2