有n(n<10)个小球,每两个碰撞有其中一个会消失,并产生一定能量。求产生最大能量。

有了正确思路题目比较简单,我的思路果然是歪的。。。

我的思路是dp[i][j]表示i这个状态剩下第j个小球,然后转移方程:

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

感觉没什么问题,但是WA了好多好多次呢!

知道自己怎么错的是个大事。。。。。。。。。

因为这样每次都是用碰撞过的小球来碰撞,但是其实比如有四个小球 1和2碰撞 3和4碰撞 然后剩下的两个在碰撞,这样的情况更新不到。

副ac代码吧,写的也很挫。。。

#include <iostream>
#include <cstring> using namespace std; const int N = 11;
const int MAXN = 1 << N;
int dp[MAXN];
int power[N][N]; int main()
{
int n;
while (cin >> n && n)
{
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
cin >> power[i][j];
}
}
int st = (1 << n) - 1;
memset(dp, 0, sizeof dp);
for (int s = 0; s <= st; ++s)
{
for (int i = 0; i < n; ++i)
{
if (((1 << i) & s) == 0)
for (int j = 0; j < n; ++j)
{
if (((1 << j) & s) == 0)
{
if (i != j)
{
dp[s | (1 << i)] = max(dp[s | (1 << i)], dp[s] + power[j][i]);
}
}
}
}
}
int ans = 0;
for (int s = 0; s <= st; ++s)
ans = max(ans, dp[s]);
cout << ans << endl; }
}

  

ZOJ3471--Most Powerful(状压DP)的更多相关文章

  1. 【状压dp】Most Powerful

    [ZOJ3471]Most Powerful Time Limit: 2 Seconds      Memory Limit: 65536 KB Recently, researchers on Ma ...

  2. HDU 2809 God of War (状压DP)

    God of War Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3336  Solved: 1936[Submit][ ...

  4. nefu1109 游戏争霸赛(状压dp)

    题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...

  5. poj3311 TSP经典状压dp(Traveling Saleman Problem)

    题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...

  6. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

  7. 【BZOJ2073】[POI2004]PRZ 状压DP

    [BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...

  8. bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)

    数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...

  9. HDU 1074 Doing Homework (状压dp)

    题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...

  10. 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP

    [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...

随机推荐

  1. 我的PHP之旅--PHP的判断、循环语句

    if语句 <?php if ($a = "some string") { // 就算括号中不是bool值,php也会自动转换为bool值 上一节写过各个类型转换bool值 / ...

  2. 关于xcode6打包以及上线前企业部署测试的说明 --转自张诚教授微博

    xcode6如何打包 首先clean然后点击归档 点击打包之后保存 点选第一个以后检查相关证书签名 那么我们开发完以后,在上线前如何给别人测试 有2种方法 1.使用299美金的企业开发者账号搭建企业部 ...

  3. 软媒魔方u盘装系统

    http://jingyan.baidu.com/article/d5a880eb6e747e13f147ccd6.html

  4. Firefly框架参考

    在游戏服务器端,往往需要处理大量的各种各样的任务,每一项任务所需的系统资源也可能不同.而这些复杂的任务只用一个单独的服务器进程是很难支撑和管理起来的.所以,游戏服务器端的开发者往往需要花费大量的时间精 ...

  5. ZOJ 3609 Modular Inverse

    点我看题目 题意 : 这个题是求逆元的,怎么说呢,题目看着很别扭....就是给你a和m,让你求一个最小的x满足a-1≡x (mod m).或者ax≡1 (mod m).通俗点说呢,就是找一个最小的x, ...

  6. 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步

    原文:<ArcGIS Engine+C#实例开发教程>第三讲 MapControl与PageLayoutControl同步 摘要:在ArcMap中,能够很方面地进行MapView和Layo ...

  7. 创建WCF的客户端

    How to: Create a Windows Communication Foundation Client To create a Windows Communication Foundatio ...

  8. git checkout

        git checkout <branch_name> <file> 检出具体分支上的 具体文件    git checkout  --merge <branch_ ...

  9. 阿里巴巴SUI Mobile的使用

    1.引入文件 <link rel="stylesheet" href="./css/sm.min.css"> <link rel=" ...

  10. Hadoop中的各种排序

    本篇博客是金子在学习hadoop过程中的笔记的整理,不论看别人写的怎么好,还是自己边学边做笔记最好了. 1:shuffle阶段的排序(部分排序) shuffle阶段的排序可以理解成两部分,一个是对sp ...