HDU-4800 & ZJU-3735 Josephina and RPG
2015-07-30 11:17
330 查看
题目:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5081题意:
给出m个角色能够组成的C(m,3)种队伍之间的胜负概率;f[i][j] 代表第i队胜dij队的概率;
给出m次对战的对手队伍序号;
求最大胜率;
思路:
dp,dp[i][j] 表示与第i个对手对战时的最大胜率;
倒推对手,dp[i][j] = f[j][a[i]] * max(dp[i+1][j],dp[i+1][a[i]]); 选择换与不换队伍后更高胜率的结果代入;
代码:
#define N 130 #define M 12345 int n,m; int a[M],b ; double f ; double dp[M] ; int main() { int i,j,k,kk,t,x,y; while(scanf("%d",&n)!=EOF&&n) { n=n*(n-1)*(n-2)/6; for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%lf",&f[i][j]); scanf("%d",&m); for(i=0;i<m;i++) scanf("%d",&a[i]); memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) dp[m][i]=1.0; for(i=m-1;i>=0;i--) for(j=0;j<n;j++) dp[i][j] = f[j][a[i]] * max(dp[i+1][j],dp[i+1][a[i]]); double res=0; for(i=0;i<n;i++) res=max(res,dp[0][i]); printf("%lf\n",res); } return 0; }
相关文章推荐
- Spring mvc 返回json格式
- android Handler 三种写法
- NHibernate使用之详细图解
- MyBatis/Ibatis中#和$的区别
- 用UltraEdit判断打开文件的编码类型
- 操作系统——进程调度之短进程优先
- 两种php给图片加水印的实现代码
- eclipse快捷键大全
- 《C++编程思想》第六章 输入输出流介绍(原书代码+习题+解答)
- MPEG2 TS概念总结
- iphone之NSUserDefaults
- machine learn in python 第二章2.1.1
- android手机上安装apk时出现解析包错误的一个解决办法
- Ubuntu 配置Eclipse 导入工程完整设置 嵌入式工具链的安装
- App推送程序
- C++ Trace和assert 的使用
- 树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
- 用javascript写的加法运算的两种方法
- Android开发:如何把Android studio中的Library发布到Jcenter
- 字节流和字符流