HDU 2985 Another lottery(水题)

HDU 2985

 

大意:

给你n个人,每个人买m次彩票,第i次的奖金是2的i次方,求每个人赢的比其他人都多的可能性是多少。

思路:

就是只看最后一次就行,2的i次方,对于每个人来说,最后一次的奖要比前面的大很多,所以直接只看最后一次,算出概率gcd一下就行了。

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int a[10010];
 5 
 6 int gcd(int a, int b)
 7 {
 8     return b > 0 ? gcd(b, a%b) : a;
 9 }
10 
11 int n, m;
12 
13 void Solve()
14 {
15     while(~scanf("%d%d", &n, &m))
16     {
17         if(!n && !m)
18         {
19             break;
20         }
21         int sum = 0;
22         for(int i = 0; i < n; ++i)
23         {
24             for(int j = 0; j < m; ++j)
25             {
26                 scanf("%d", &a[i]);
27             }
28             sum += a[i];
29         }
30         for(int i = 0; i < n; ++i)
31         {
32             int t = gcd(sum, a[i]);
33             //printf("%d\n", t);
34             printf("%d / %d\n", a[i]/t, sum/t);
35         }
36     }
37 }
38 
39 int main()
40 {
41     Solve();
42 
43     return 0;
44 }
View Code

 

 

posted @ 2014-04-02 21:57  GLSilence  阅读(421)  评论(0编辑  收藏  举报