Bad Luck Island-CodeForce(dp)
链接:http://codeforces.com/problemset/problem/540/D
题目大意:
这个岛上有三种生物 r石头 s剪刀 p布
求最后只剩一种生物的概率
用dp[i][j][k]表示概率
石头和剪刀相遇的概率是p=i*j/(i*j+j*k+k*i),剪刀会被吃掉 所以dp[i][j-1][k]=dp[i][j][k]*p;每一种情况都会有三种情况演变过来的,所以每次都要加上他
上代码 应该看代码就能看懂
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#define N 110
using namespace std;
double dp[N][N][N];
int main()
{
int r,s,p,i,j,k; while(scanf("%d %d %d",&r,&s,&p)!=EOF)
{
memset(dp,,sizeof(dp));
dp[r][s][p]=1.0;
for(i=r;i>=;i--)
{
for(j=s;j>=;j--)
{
for(k=p;k>=;k--)
{
double sum=i*j+j*k+k*i;
if(i && k)
dp[i-][j][k]+=dp[i][j][k]*i*k*1.0/sum;
if(j && i)
dp[i][j-][k]+=dp[i][j][k]*i*j*1.0/sum;
if(k && j)
dp[i][j][k-]+=dp[i][j][k]*k*j*1.0/sum;
}
}
}
double x=,y=,z=;
for(i=r;i>;i--)
x+=dp[i][][];
for(i=s;i>;i--)
y+=dp[][i][];
for(i=p;i>;i--)
z+=dp[][][i];
printf("%.12lf %.12lf %.12lf\n",x,y,z); }
return ;
}
Bad Luck Island-CodeForce(dp)的更多相关文章
- Codeforces Round #301 (Div. 2) D. Bad Luck Island 概率DP
D. Bad Luck Island Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/pr ...
- CF540D Bad Luck Island(期望dp)
传送门 解题思路 比较容易的一道期望\(dp\),设\(f[i][j][k]\)表示石头\(i\)个,剪刀\(j\)个,步子\(l\)个.然后转移的时候用组合数算一下就好了. 代码 #include& ...
- codeforces 540D Bad Luck Island (概率DP)
题意:会出石头.剪刀.布的人分别有r,s,p个,他们相互碰到的概率相同,输的人死掉,问最终活下去的人是三种类型的概率 设状态dp(i,j,k)为还有i个石头,j个剪刀,k个布时的概率,dp(r,s,p ...
- cf540D. Bad Luck Island(概率dp)
题意 岛上有三个物种:剪刀$s$.石头$r$.布$p$ 其中剪刀能干掉布,布能干掉石头,石头能干掉剪刀 每天会从这三个物种中发生一场战争(也就是说其中的一个会被干掉) 问最后仅有$s/r/p$物种生存 ...
- cf.301.D. Bad Luck Island(dp + probabilities)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- CF#301 D:Bad Luck Island (概率dp)
D:Bad Luck Island 一个岛上有r个石头,s个剪子,p个布,他们之间随机挑出两个相遇,如果不是相同物种,就会有一个消失,分别求出最后这座岛上只剩下一个物种的概率. 我们用dp[i][j] ...
- CF 540D——Bad Luck Island——————【概率dp】
Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces B. Bad Luck Island(概率dp)
题目描述: Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- 【CF540D】 D. Bad Luck Island (概率DP)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- CodeForces - 540D Bad Luck Island —— 求概率
题目链接:https://vjudge.net/contest/226823#problem/D The Bad Luck Island is inhabited by three kinds of ...
随机推荐
- CF949A/950C Zebras
思路: 贪心乱搞. 实现: #include <bits/stdc++.h> using namespace std; vector<vector<int>> v; ...
- 微信官方UI库—WeUI
WeUI 为微信 Web 服务量身设计 概述 WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一.包含button.cell ...
- wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
原文链接:wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法 最近升级wordpress之后,发现在文章编辑界面的添加新媒体和可视化按钮点击无反应,如下: 然后就在网上找解决办法, ...
- ScrollView嵌套GridView,GridView显示不全
最近开发有个需求是以A-Z的方式区分全国城市(搜索功能),并实现字母索引的功能(有点类似微信,不过比较坑的是用的是GridView, 并且GridView上面还有几个LinearLayout). 详细 ...
- R in action读书笔记(14)第十一章 中级绘图 之一:散点图(高能预警)
第十一章中级绘图 本章内容: 二元变量和多元变量关系的可视化 绘制散点图和折线图 理解相关图 学习马赛克图和关联图 本章用到的函数有: plot hexbin ablines iplot scatte ...
- mysql提升效率
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- 如何参与一个GitHub开源项目?
如何参与一个GitHub开源项目? 摘要:本文是Github官如何参与一个GitHub开源项目方给出的参与Github上开源项目的一些指导,对希望加入开源社区的开发者是一个不错的参考. 最近一年开源项 ...
- IOS 面试题系列
随着iOS平台开发的职位的增加,笔试.面试也越来越有“套路”,这里我总结了一些面试题,多数是Objective-C的基础知识,适合于面试新人,答案是我自己答的,不准确的地方,欢迎指出. 1. Ob ...
- OpenFlow_tutorial_1_Introduce
tutorial出处:https://github.com/mininet/openflow-tutorial/wiki OpenFlow是用于远程控制交换机流表(forwarding tables) ...
- oracle 时区
select sysdate from dual;select systimestamp from dual;select localtimestamp from dual;select curren ...