ZOJ 3471 状压DP
2017-04-19 20:26
302 查看
题意
N个元素,一个元素可以碰撞另一个元素产生能量,碰撞的结果是这个元素消失。问最大能产生多少能量?题解
最基础的状压DP,因为只有10个元素,因此可以将所有状态枚举出来。状态转移方程dp[k]=max(dp[k],dp[s]+a[i][j])代码
#include <iostream> #include<cstring> #include<cstdio> using namespace std; int a[15][15]; int dp[1050]; int main() { int n; while(~scanf("%d",&n)){ if(n==0) break; memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); } } int mx=1<<n; for(int k=0;k<mx;k++){ for(int i=0;i<n;i++){ if(k&1<<i) continue; for(int j=0;j<n;j++){ if(i==j) continue; if(!(k&1<<j)) continue; int st=k^1<<j; dp[k]=max(dp[k],dp[st]+a[i][j]); } } } int ans=0; for(int i=0;i<mx;i++){ ans=max(ans,dp[i]); } printf("%d\n",ans); } return 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 3471 状压DP
- ZOJ 3471 Most Powerful 状压dp
- [ZOJ 3471] Most Powerful · 状压DP
- zoj 3471 Most Powerful 状压dp(简单)
- zoj 3777 Problem Arrangement(状压dp)
- zoj 3471(状态压缩DP)
- ZOJ 3777-Problem Arrangement(状压DP)
- zoj 3471状态压缩DP
- ZOJ 3802 Easy 2048 Again(状压DP)
- zoj 3471 Most Powerful 状态压缩dp
- zoj 3471 Most Powerful(状态压缩dp)
- zoj 3905 Cake(状压dp)
- Easy 2048 Again - ZOJ 3802 状压dp