微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

light oj 1265 - Island of Survival概率dp

1265 - Island of Survival

PDF (English) Statistics Forum
Time Limit: 2 second(s) Memory Limit: 32 MB

You are in a reality show,and the show is way too real that they threw into an island. Only two kinds of animals are in the island,the tigers and the deer. Though unfortunate but the truth is that,each day exactly two animals meet each other. So,the outcomes are one of the following

a)      If you and a tiger meet,the tiger will surely kill you.

b)      If a tiger and a deer meet,the tiger will eat the deer.

c)      If two deer meet,nothing happens.

d)      If you meet a deer,you may or may not kill the deer (depends on you).

e)      If two tigers meet,they will fight each other till death. So,both will be killed.

If in some day you are sure that you will not be killed,you leave the island immediately and thus win the reality show. And you can assume that two animals in each day are chosen uniformly at random from the set of living creatures in the island (including you).

Now you want to find the expected probability of you winning the game. Since in outcome (d),you can make your own decision,you want to maximize the probability.

Input

Input starts with an integer T (≤ 200),denoting the number of test cases.

Each case starts with a line containing two integers t (0 ≤ t ≤ 1000) and d (0 ≤ d ≤ 1000) where t denotes the number of tigers and d denotes the number of deer.

Output

For each case,print the case number and the expected probability. Errors less than 10 will be ignored.

Sample Input

Output for Sample Input

4

0 0

1 7

2 0

0 10

Case 1: 1

Case 2: 0

Case 3: 0.3333333333

Case 4: 1

 


SPECIAL THANKS: JANE ALAM JAN (DESCRIPTION,SOLUTION,DATASET)

思路:疏忽deer的影响,每次乘以都是老虎相遇的几率


#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<stack> #include<vector> #include<set> #include<map> #define L(x) (x<<1) #define R(x) (x<<1|1) #define MID(x,y) ((x+y)>>1) #define eps 1e⑻ //typedef __int64 ll; #define fre(i,a,b) for(i = a; i <b; i++) #define free(i,b,a) for(i = b; i >= a;i--) #define mem(t,v) memset ((t),v,sizeof(t)) #define ssf(n) scanf(%s,n) #define sf(n) scanf(%d,&n) #define sff(a,b) scanf(%d %d,&a,&b) #define sfff(a,c) scanf(%d %d %d,&b,&c) #define pf printf #define bug pf(Hi ) using namespace std; #define INF 0x3f3f3f3f #define N 10005 int tiger,deer; int main() { int i,j,t,ca=0; sf(t); while(t--) { scanf(%d%d,&tiger,&deer); printf(Case %d: ,++ca); double ans=1; if(tiger&1) { printf(0.00000000 ); continue; } while(tiger>0) { ans*=tiger*(tiger⑴)*1.0/(tiger*(tiger+1)); tiger-=2; } printf(%.7lf ,ans); } return 0; }







版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐