只有链接:http://sdu.acmclub.com/index.php?app=problem_title&id=961&problem_id=23685

题意:现在有n个QiQi和n个任务,告诉了每个QiQi能够成功完成这n个任务的概率,每个QiQi只能完成一种任务,问你如何安排任务使得所有的任务被完成的概率最大。

题解:很明显的状压Dp啊。之前没有独立的打过这种DP,比赛的时候打了一发,结果WA,第二天才知道自己枚举的时候状态少枚举了。结果复习了一下状压dp。然后打了一发,结果T了。然后就想优化。发现,对于第i行来说,枚举i-1行的时候,这时候室友优化的,因为前i-1行所放的东西的个数必须是i-1个,结果改了,加了一个判断,结果还T了,想了想,其实还是可以优化的,就是判断的时候可以事先把每一种状态的1的个数处理处理,那么判断的时候就可以O(1)的了,否则会每次都会计算一次。这样就过了。一开始还不知道怎么枚举上一层的状态,结果是把总的每一种都枚举一遍。不错不错,继续努力。

最近看到一句话分享给大家:只有一条路不能选择---那就是放弃的的路;只有一条路不能拒绝---那就是成长的路!

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
double dp[][(<<)];
double a[][];
int c[<<];
int n;
int counts(int x){
int ans=;
while(x){
ans+=(x&);
x/=;
}
return ans;
}
void solve(){
memset(c,,sizeof(c));
for(int i=;i<(<<n);i++){
c[i]=counts(i);
}
}
int main(){
while(~scanf("%d",&n)){
memset(dp,,sizeof(dp));
memset(a,,sizeof(a));
solve();
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%lf",&a[i][j]); for(int i=;i<=n;i++)
dp[][<<(i-)]=a[][i]; for(int i=;i<=n;i++){
memset(dp[i&],,sizeof(dp[i&]));
for(int j=;j<(<<n);j++){
if(c[j]!=i-)continue;
for(int k=;k<=n;k++){
int temp=(<<(k-));
if(!(temp&j)){
dp[i&][temp+j]=max(dp[i&][temp+j],dp[(i-)&][j]*a[i][k]);
}
}
}
}
double maxn=;
for(int i=;i<(<<n);i++){
maxn=max(maxn,dp[n&][i]);
}
for(int i=;i<n;i++){
maxn/=100.0;
}
printf("%.6lf\n",maxn);
}
}

QiQi and Bonds的更多相关文章

  1. HDU 5765 Bonds 巧妙状压暴力

    题意:给一个20个点无向连通图,求每条边被多少个极小割集包括 分析:极小割集是边的集合,很显然可以知道,极小割集恰好吧原图分成两部分(这个如果不明白可以用反证法) 然后就是奉上官方题解:http:// ...

  2. HDU5765 Bonds 最小割极

    http://acm.hdu.edu.cn/showproblem.php?pid=5765 题意:无向连通图,问每条边在几个最小割极上 思路:用位压形式,表示边的关系.g[1<<i]=1 ...

  3. QiQi and Symmerty

    http://sdu.acmclub.com/index.php?app=problem_title&id=961&problem_id=23772 题意:给出一个01串,问有多少个子 ...

  4. HDU 5765 Bonds(状压DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5765 [题目大意] 给出一张图,求每条边在所有边割集中出现的次数. [题解] 利用状压DP,计算不 ...

  5. HDU 5765 Bonds

    比赛时候想了好久,不会.看了官方题解才会...... Bond是极小割边集合,去掉一个Bond之后,只会将原图分成两个连通块. 假设某些点构成的集合为 s(点集中的点进行状压后得到的一个十进制数),那 ...

  6. [HDU5765]Bonds

    题面 题意 给出一张\(n\)点\(m\)边无向连通图,求每条边出现在多少个割集中. \(n\le20,m\le\frac{n(n-1)}{2}\) sol 所谓割集,就是指把\(n\)个点分成两个集 ...

  7. HDU.5765.Bonds(DP 高维前缀和)

    题目链接 \(Description\) 给定一张\(n\)个点\(m\)条边的无向图.定义割集\(E\)为去掉\(E\)后使得图不连通的边集.定义一个bond为一个极小割集(即bond中边的任意一个 ...

  8. bonds

    Linux--多网卡的7种Bond模式 http://www.cnblogs.com/lcword/p/5914089.html 七种网卡绑定模式详解:  http://blog.csdn.net/w ...

  9. Why did I have a recovery trip

    For more than a decade, I felt most at ease living out of a suitcase, never quite sure where I might ...

随机推荐

  1. cocos2d-x创建精灵动画

    创建动画一般过程: 1.创建精灵框架缓存,并向其中添加相应的动画文件(plist),最后,通过动画集缓存生产动画 CCSpriteFrameCache *cache = CCSpriteFrameCa ...

  2. ColorComboBox

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...

  3. 1/8=1/a+1/b,a,b为自然数

    #include "stdio.h" int main(){ int a; int b; for(a=1;a<1000;a++)  {  for(b=1;b<1000; ...

  4. JSBridge(Android和IOS平台)的设计和实现

    前言 对于商务类的app,随着app注册使用人数递增,app的运营者们就会逐渐考虑在应用中开展一些推广活动.大多数活动具备时效性强.运营时间短的特征,一般产品们和运营者们都是通过wap页面快速投放到产 ...

  5. J2EE 读取文件路径

    在J2ee中实现java类读取webcontent/web-inf/config.xml的实现代码 ,其中../config.xml相对于classes的路径 java.net.URL url = t ...

  6. Android4.0的Alertdialog对话框,设置点击其他位置不消失

    Android4.0以上AlertDialog,包括其他自定义的dialog,在触摸对话框边缘外部,对话框消失. 可以设置这么一条属性,当然必须先AlertDialog.Builder.create( ...

  7. 关于在MDK4.5以上版本不能使用JLINK V8的解决办法

    如果安装MDK4.50版本以上不能使用jlink8的话,请安装jlink 4.36k版本(或以下)驱动,安装完成后,把\SEGGER\JLinkARM_V436k目录下的JLinkARM.dll拷贝到 ...

  8. 17、SQL Server 备份和还原

    SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式,它会完整记录下操作数据库的每一个步骤, ...

  9. Node.js + Express + Mongodb 开发搭建个人网站(一)

    一.Node + Express环境搭建 0.去Node官网下载安装node,如果安装了 npm 和 node的话 那么就 安装 全局的 express,-g全局安装 npm install expr ...

  10. android 定时请求(两种实现方式)

    方式一: Handler + Runnable (借鉴网址:http://stackoverflow.com/questions/6207362/how-to-run-an-async-task-fo ...