题意:一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最简的分数形式表示答案。n<=33。

思路:这题实在好人,n<=33。用longlong就可以表示分数了,不用去写大数。

  假设现在已刮到k个图案了,刮到新图案的概率是(n-k)/n,即若要再收集一个新图案平均要刮s=n/(n-k)次。所以只需要穷举k=1 to n,累加s的和就行了。注意式子可以将分子n提取出来。

 #include <bits/stdc++.h>
#define pii pair<int,int>
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=;
LL lef[N+], up[N+], down[N+];
void pre_cal()
{
memset(lef, , sizeof(lef));
memset(up, , sizeof(up));
memset(down, , sizeof(down));
lef[]=;
for(int i=; i<=N; i++)
{
LL d1=, d2=; //d1为分子,d2为分母
for(int j=; j<=i; j++)
{
d1=d1*j+d2;
d2*=j;
LL p=__gcd(d1, d2);
d1/=p;
d2/=p;
} d1*=i;
LL p=__gcd(d1, d2);
d1/=p;d2/=p; //约分 lef[i]=d1/d2;
up[i]=d1%d2;
down[i]=d2;
} } int main()
{
//freopen("input.txt", "r", stdin);
pre_cal();
int n;
while(~scanf("%d", &n))
{
if(up[n]==) printf("%lld\n", lef[n]);
else
{
for(LL i=lef[n]; i>; i/= ) printf(" ");printf(" %lld\n", up[n]); //****分子 printf("%lld ", lef[n]); //****左部
for(LL i=down[n]; i>; i/=) printf("-");printf("\n"); for(LL i=lef[n]; i>; i/= ) printf(" ");
printf(" %lld\n", down[n]); //****分母
}
}
return ;
}

AC代码

UVA 10288 Coupons 彩票 (数学期望)的更多相关文章

  1. UVa 10288 - Coupons(数学期望 + 递推)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. UVA 10288 - Coupons(概率递推)

    UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&p ...

  3. UVa 1639 - Candy(数学期望 + 精度处理)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  4. UVa 1639 Candy (数学期望+组合数学+高精度存储)

    题意:有两个盒子各有n个糖,每次随机选一个(概率分别为p,1-p),然后吃掉,直到有一次,你打开盒子发现,没糖了! 输入n,p,求另一个盒子里糖的个数的数学期望. 析:先不说这个题多坑,首先要用lon ...

  5. Uva - 12230 Crossing Rivers (数学期望)

    你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在 ...

  6. Uva 10288 Coupons

    Description Coupons in cereal boxes are numbered \(1\) to \(n\), and a set of one of each is require ...

  7. uva 10288 Coupons (分数模板)

    https://vjudge.net/problem/UVA-10288 大街上到处在卖彩票,一元钱一张.购买撕开它上面的锡箔,你会看到一个漂亮的图案. 图案有n种,如果你收集到所有n(n≤33)种彩 ...

  8. UVA 10288 Coupons (概率)

    题意:有n种纸片无限张,随机抽取,问平均情况下抽多少张可以保证抽中所有类型的纸片 题解:假设自己手上有k张,抽中已经抽过的概率为 s=k/n:那抽中下一张没被抽过的纸片概率为 (再抽一张中,两张中,三 ...

  9. UVa 12230 - Crossing Rivers(数学期望)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

随机推荐

  1. 【扬中集训DAY5T1】 交换矩阵

    [题目链接] 点击打开链接 [算法] 链表,对于每个点,存它的上,下,左,右分别是谁 [代码] #include<bits/stdc++.h> using namespace std; # ...

  2. JAVA Synchronized (三) volatile 与 synchronized 的比较

    一,volatile关键字的可见性 要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下: 从图中可以看出: ①每个线程都有一个自己的本地内存空间--线程栈空 ...

  3. ASP.NET Core:WebAppCoreApi

    ylbtech-ASP.NET Core:WebAppCoreApi 1.返回顶部 1. 2. 3.           4. 2. Controllers返回顶部 1.ValuesControlle ...

  4. JDK7中匿名内部类中使用局部变量要加final,JDK8中不需要,但jdk会默认加上final

    今天看书的时候看到了局部内部类,书上说局部内部类可以访问局部变量,但是必须是final的.因为局部变量在方法调用之后就消失了,使用final声明的话该局部变量会存入堆中,和内部类有一样的声明周期.但是 ...

  5. The IBM Blockchain Platform: Develop pre-requisites

    Installing pre-requisites The IBM Blockchain Platform: Develop pre-requisites can be installed on Ub ...

  6. 【废弃】JavaScript 控制类语法

    创建: 2017/10/07 完成: 2017/10/07 结束: 2019/02/19 把所有内容迁出到[JavaScript 基础]并将本博文归档到[废弃] return前加一个空格, 使所有单元 ...

  7. (水题)洛谷 - P1051 - 谁拿了最多奖学金

    https://www.luogu.org/problemnew/show/P1051 这个根本就不用排序啊…… #include<bits/stdc++.h> using namespa ...

  8. bzoj 2959: 长跑【LCT+并查集】

    如果没有环的话直接LCT 考虑有环怎么办,如果是静态的话就tarjan了,但是这里要动态的缩环 具体是link操作的时候看一下是否成环(两点已联通),成环的话就用并查集把这条链缩到一个点,把权值加给祖 ...

  9. elasticsearch 查询 query

    对于 类型是 text的字段,并且分析器指明是ik_max_word的会建立倒排索引 查询的分类: match查询:  会自动转换大小写,会分词, term查询: 不会转换和分词,只能值匹配 term ...

  10. [Usaco2015 Feb]Censoring

    Description Farmer John has purchased a subscription to Good Hooveskeeping magazine for his cows, so ...