bzoj 3191: [JLOI2013]卡牌游戏
来源:互联网 发布:韦东山linux第一期 编辑:程序博客网 时间:2024/06/07 20:25
题意:
问每一个人在约瑟夫问题胜出的概率。
题解:
一开始我想了个三维的dp。
然后被tybD。
其实不难发现,真正有价值的是当前计算的人与当前庄家的距离。
所以设
随便转移下就好了。
code:
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;double f[55][55];int n,m,a[55];int dis(int x,int y,int num) {return (y-x+num)%num;}//在num个人的情况下,y里x的距离double dfs(int x,int y)//x个人,距离庄家y的人赢的期望。 { if(x==1) return 1.0; if(f[x][y]!=-1) return f[x][y]; f[x][y]=0; for(int i=1;i<=m;i++) { int p=a[i]%x;//下一个庄家到当前庄家的距离 if((y+1)%x==p) continue; int Y=y; if(p!=0) {p--;if(p<Y) Y--;} f[x][y]=f[x][y]+dfs(x-1,dis(p,Y,x-1))/(double)m; } return f[x][y];}int main(){ scanf("%d %d",&n,&m); for(int i=1;i<=m;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) for(int j=0;j<n;j++) f[i][j]=-1; for(int i=1;i<=n;i++) printf("%.2lf%%%c",dfs(n,i-1)*100.0,i!=n?' ':'\n');}
阅读全文
1 0
- 【BZOJ 3191】[JLOI2013]卡牌游戏
- BZOJ 3191 JLOI2013 卡牌游戏
- bzoj 3191: [JLOI2013]卡牌游戏
- BZOJ-3191 卡牌游戏JLOI2013 概率DP
- 3191: [JLOI2013]卡牌游戏
- bzoj3191【JLOI2013】卡牌游戏
- bzoj3191: [JLOI2013]卡牌游戏
- BZOJ3191 [JLOI2013]卡牌游戏
- BZOJ3191: [JLOI2013]卡牌游戏
- bzoj3191: [JLOI2013]卡牌游戏
- 3191: [JLOI2013]卡牌游戏|概率与期望
- 【BZOJ3191】【JLOI2013】卡牌游戏 概率DP
- 洛谷 P2059 [JLOI2013]卡牌游戏
- 洛谷P2059 [JLOI2013]卡牌游戏
- [JLOI2013]卡牌游戏 (洛谷2059)
- [BZOJ3191][洛谷P2059][JLOI2013]卡牌游戏 概率DP
- 【BZOJ 3190】 [JLOI2013]赛车
- BZOJ 3190 [JLOI2013]赛车
- 自定义属性dataset
- css3 animation
- android webview加载https网页
- 互亿无线短信接口开发
- 03HttpURLConnection详解
- bzoj 3191: [JLOI2013]卡牌游戏
- wwww
- 数据的增删改查:单行函数与统计函数
- 2017.11.2 測試總結并今日總結
- MySQL之运算符和函数
- 九九乘法表
- SSL/TLS 双向认证(二) -- 基于mosquittto的MQTT双向认证
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)
- SpringMVC上下文父子容器