【Codeforces678E】【锦标赛】
来源:互联网 发布:网络男歌手有哪些 编辑:程序博客网 时间:2024/04/28 23:01
题目大意
有n个人,两两决斗有一定概率胜,求安排出场顺序后第一个人最大的获胜概率。
解题思路
考虑到数据较小,我们可以状压。直观的方法我们可以不断添加人,记录当前擂主,可惜这无法使第一个人尽可能赢。我们可以考虑倒着做,知道谁后添加,再不断向前,这样我们就可以使第一个人尽量赢。
code
#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)using namespace std;int const maxn=18;int n;double a[maxn+10][maxn+10],f[(1<<maxn)+10][maxn+10];int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d",&n); fo(i,1,n) fo(j,1,n)scanf("%lf",&a[i][j]); f[1][1]=1; fo(i,2,(1<<n)-1) fo(j,1,n) if(i&(1<<(j-1))) fo(k,1,n) if(i&(1<<(k-1))) f[i][j]=max(f[i][j],a[j][k]*f[i^(1<<(k-1))][j]+a[k][j]*f[i^(1<<(j-1))][k]); double ans=0; fo(i,1,n)ans=max(ans,f[(1<<n)-1][i]); printf("%.7lf",ans); return 0;}
0 0
- 【Codeforces678E】【锦标赛】
- 锦标赛
- 锦标赛算法
- 锦标赛排序
- 【蓝桥杯】【锦标赛】
- 2013 锦标赛
- 【JZOJ4648】锦标赛
- 锦标赛算法
- boj452. 解码锦标赛-dp
- 锦标赛问题 - 递归
- JZOJ.4648 锦标赛
- 【NOIP模拟】锦标赛
- 锦标赛_ssl2571_拓扑排序
- 【CodeM编程】锦标赛
- [NOIP模拟赛]锦标赛
- 锦标赛排序和堆排序
- 锦标赛排序算法 java版
- 百度面试题 --- 锦标赛排序
- UVA 1149 bin packing (贪心)
- c:import 标签详解
- 设计文件系统时应尽量减少访问磁盘的次数,以提高文件系统的性能.下列各种措施中,哪些可以减少磁盘服务时间?
- longest-valid-parentheses
- Spring MVC入门
- 【Codeforces678E】【锦标赛】
- hdu-1081 To The Max (最大子矩阵和)
- LeetCode - 79. Word Search
- Android studio 使用Gradle发布Android开源项目到JCenter 总结
- HDU 4993 / BC 9A Revenge of ex-Euclid
- 【7006】括号的匹配问题
- Hadoop集群监控:jmx信息获取
- 递归和阶乘
- Leetcode-binary-tree-postorder-traversal