• Coupons


    uva10288:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1229

    题意:有一种盒子,盒子一面会随机放一种卡片,现在要集齐n种卡片,问要买多少个盒子。

    题解:假如说n==2,那么第一次买,肯定可以得到一种新的卡片,第二次买得到新的卡片的概率是1/2,也就是说你那买2包才能得到新的卡片,所以期望值是1+2==3;如果n==3的话,第一次概率是1,第二次是2/3,也就是说第二次要买3/2包才能得到一种新的卡片,第三次是1/3,所以要买3包,所以总的期望是1+3/2+3;一次类推,可以得到期望:n/1+n/2+n/3+.....+n/n.还有题目中的输出格式,用log(a)/log(10)+1就可以得到a的位数。还有uva用的是lld,不是I64d

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<set>
     6 #include<cmath>
     7 using namespace std;
     8 long long n,temp,a,b,ans;
     9 long long gcd(long long a, long long b){
    10     if(b==0)
    11         return a;
    12     return gcd(b,a%b);
    13 }
    14 
    15 int main(){
    16    while(~scanf("%lld",&n)){
    17        a=1;b=1;ans=0;
    18        for(int i=2;i<=n;i++){
    19            a=a*i+b;
    20            b=b*i;
    21            temp=gcd(a,b);
    22            a/=temp;
    23            b/=temp;
    24        }
    25        a*=n;
    26        temp=gcd(a,b);
    27        a/=temp;
    28        b/=temp;
    29        ans=a/b;
    30         a=a%b;
    31         temp=gcd(a,b);
    32         a/=temp;
    33         b/=temp;
    34         int m,t;
    35          int s=(int)(log(b)/log(10)+1);
    36         m=t=(int)(log(ans)/log(10)+2);
    37         if(a==0)
    38             printf("%lld
    ",ans);
    39         else{
    40             while(t--)printf(" ");
    41             printf("%lld
    ",a);
    42             printf("%lld ",ans);
    43             while(s--)printf("-");
    44             printf("
    ");
    45             while(m--)printf(" ");
    46             printf("%lld
    ",b);
    47         }
    48 
    49    }
    50 }
    View Code
  • 相关阅读:
    delphi datetimepicker 修改时间无效问题
    C#写入文件
    C# winform中listview排序
    C/C++,python,java,C#月经贴问题
    Redis Sentinel 原理简单介绍
    JVM垃圾收集 知识汇总
    Java HotSpot VM Options
    Spring三级缓存解决循环依赖
    Markdown基础用法
    join示例分析
  • 原文地址:https://www.cnblogs.com/chujian123/p/3860284.html
Copyright © 2020-2023  润新知