题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5013

题意:

思路:

这里有错,是Hi(x)=sigama(Hji)(j属于x)

const int N=18;

int m,n;
double p[N],H[N][N]; double f[N][1<<N];
double dp[N][1<<N]; double a[1<<N],aa[1<<N]; double pp[1<<N],qq[1<<N]; int cnt[1<<N]; void init()
{
int i;
for(i=1;i<(1<<N);i++) cnt[i]=cnt[i>>1]+(i&1);
} int sgn(double x)
{
if(x>1e-20) return 1;
if(x<-1e-20) return -1;
return 0;
} int main()
{ init();
while(scanf("%d%d",&m,&n)!=-1)
{
int i,j,k;
for(i=0;i<m;i++)
{
scanf("%lf",&p[i]);
if(sgn(p[i]-1)==0) p[i]-=1e-10;
}
for(i=0;i<(1<<m);i++)
{
pp[i]=qq[i]=1;
for(j=0;j<m;j++) if(i&(1<<j)) pp[i]*=p[j],qq[i]*=1-p[j];
}
for(i=0;i<m;i++) for(j=1;j<=n;j++) scanf("%lf",&H[i][j]);
for(i=0;i<(1<<m);i++)
{
dp[n][i]=0;
f[n][i]=0;
for(j=0;j<m;j++) if(i&(1<<j))
{
f[n][i]+=H[j][n];
dp[n][i]+=H[j][n];
}
}
for(i=n-1;i>=1;i--)
{
for(j=0;j<(1<<m);j++)
{
a[j]=f[i+1][j]*pp[j]/qq[j];
aa[j]=dp[i+1][j]*cnt[j]*pp[j]/qq[j];
}
for(k=1;k<=m;k++) for(j=(1<<m)-1;j>=0;j--)
{
if(j&(1<<(k-1)))
{
a[j]=a[j]+a[j^(1<<(k-1))];
aa[j]=aa[j]+aa[j^(1<<(k-1))];
}
} f[i][0]=dp[i][0]=0; for(j=1;j<(1<<m);j++)
{
dp[i][j]=0;
for(k=0;k<m;k++) if(j&(1<<k)) dp[i][j]+=H[k][i];
f[i][j]=dp[i][j]+qq[j]*a[j]+qq[j]/cnt[j]*aa[j];
}
}
printf("%.10lf\n",f[1][(1<<m)-1]);
}
}

HDU 5013 City Tour的更多相关文章

  1. 1307: City Tour

    1307: City Tour Time Limit: 1 Sec  Memory Limit: 128 MB [Submit][Status][Web Board] Description Alic ...

  2. hdu 1853 Cyclic Tour 最大权值匹配 全部点连成环的最小边权和

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) ...

  3. hdu 1853 Cyclic Tour (二分匹配KM最小权值 或 最小费用最大流)

    Cyclic Tour Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Total ...

  4. HDU 1853 Cyclic Tour[有向环最小权值覆盖]

    Cyclic Tour Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Total ...

  5. HDU 1853 Cyclic Tour(最小费用最大流)

    Cyclic Tour Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others) Tota ...

  6. HDU 1505 City Game (hdu1506 dp二维加强版)

    F - City Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi ...

  7. hdu 1853 Cyclic Tour 最小费用最大流

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 There are N cities in our country, and M one-way ...

  8. HDU 3634 City Planning (离散化)

    City Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  9. hdu 5013 优化疑问+dp

    http://acm.hdu.edu.cn/showproblem.php?pid=5013 m个游客,n座城市(m, n <= 16), 每个人从1走到n, 每次有一定概率停在原地,然后以后就 ...

随机推荐

  1. const C语言(转)

    const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量.例:void fun ...

  2. 由Unicode编码想到弄懂编码表

    test unicode好 007400650073007400200075006E00690063006F00640065597D 这是一个Unicode编码,一共六七万的汉字,可以说Unicode ...

  3. repeater做删除前弹窗询问

    前台 <asp:LinkButton ID="delLinkButton" runat="server" OnClientClick='return co ...

  4. dota玩家与英雄契合度的计算器,python语言scrapy爬虫的使用

    首发:个人博客,更新&纠错&回复 演示地址在这里,代码在这里. 一个dota玩家与英雄契合度的计算器(查看效果),包括两部分代码: 1.python的scrapy爬虫,总体思路是pag ...

  5. Windows 7 64位下使用ADB驱动

    早上在cmd输入adb devices想查询正在执行的虚拟器有多少个,但是执行结果出现 C:\Users\Administrator>adb deviceserror: C:\Users\Adm ...

  6. poj2407 Relatives 欧拉函数基本应用

    题意很简单 就是欧拉函数的定义: 欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) .题目求的就是φ(n) 根据 通式:φ(x)=x*(1-1/p1)*(1-1/ ...

  7. android 应用架构随笔五(ActionBar与侧滑菜单DrawerLayout)

    ActionBar(V7)的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了,在Androi ...

  8. zabbix agent 类型自带的key

    zabbix服务器端通过与zabbix agent通信来获取客户端服务器的数据,agent分为两个版本,在配置主机我们可以看到一个是agent,另一个是agent(active). agent:zab ...

  9. WKWebView与Js实战(OC版)

    前言 上一篇专门讲解了WKWebView相关的所有类.代理的所有API.那么本篇讲些什么呢?当然是实战了! 本篇文章教大家如何使用WKWebView去实现常用的一些API操作.当然,也会有如何与JS交 ...

  10. POJ 3026 : Borg Maze(BFS + Prim)

    http://poj.org/problem?id=3026 Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...