P1291 百事世界杯之旅

题目描述

“……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字。只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯。还不赶快行动!”

你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢?

输入输出格式

输入格式:

整数n(2≤n≤33),表示不同球星名字的个数。

输出格式:

输出凑齐所有的名字平均需要买的饮料瓶数。如果是一个整数,则直接输出,否则应该直接按照分数格式输出,例如五又二十分之三应该输出为(复制到记事本):

3 5-- 20 第一行是分数部分的分子,第二行首先是整数部分,然后是由减号组成的分数线,第三行是分母。减号的个数应等于分母的为数。分子和分母的首位都与第一个减号对齐。

分数必须是不可约的。

输入输出样例

输入样例#1:

2
输出样例#1:

3
/*
当有k个人的时候,抽到下一个的概率是n-k/n 所以平均需要n/n-k瓶才能买到下一个
所以ANS=n(1/1+1/2+1/3+....1/n)
这里可以用分数直接计算
*/
#include<iostream>
#include<cstdio>
using namespace std;
long long mul=,n,sum;
long long GCD(long long x,long long y){
if(y==)return x;
return GCD(y,x%y);
}
int main(){
//freopen("Cola.txt","r",stdin);
cin>>n;
for(long long i=;i<=n;i++)
{
long long tmp1=i/GCD(i,mul),tmp2=mul/GCD(i,mul);
mul*=tmp1;//分母
sum=sum*tmp1+n*tmp2;//分子
int r=GCD(sum,mul);
sum/=r;mul/=r;
}
if(mul==){
cout<<sum;
return ;
}
if(sum<mul){
cout<<sum;
long long len=;
long long cp=mul;
while(cp){
len++;
cp/=;
}
for(long long i=;i<=cp;i++)printf("-");printf("\n");
cout<<mul;
return ;
}
if(sum>mul){
long long len1=,len2=;
long long x=sum/mul;
sum%=mul;
long long cp1=x,cp2=mul;
while(cp1){//整数部分长度
len1++;
cp1/=;
}
while(cp2){
len2++;
cp2/=;
}
for(long long i=;i<=len1;i++)printf(" ");
cout<<sum<<endl;
cout<<x;
for(long long i=;i<=len2;i++)printf("-");printf("\n");
for(long long i=;i<=len1;i++)printf(" ");
cout<<mul;
}
}

洛谷P1291 百事世界杯之旅的更多相关文章

  1. 【题解】P1291 百事世界杯之旅 - 期望dp

    P1291 [SHOI2002]百事世界杯之旅 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 "--在 \ ...

  2. 洛谷 P1291 [SHOI2002]百事世界杯之旅 解题报告

    P1291 [SHOI2002]百事世界杯之旅 题目描述 "--在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽 ...

  3. 洛谷P1291 [SHOI2002]百事世界杯之旅 [数学期望]

    题目传送门 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听, ...

  4. 洛谷P1291 [SHOI2002]百事世界杯之旅(期望DP)

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  5. P1291 [SHOI2002]百事世界杯之旅(概率)

    P1291 [SHOI2002]百事世界杯之旅 设$f(n,k)$表示共n个名字,剩下k个名字未收集到,还需购买饮料的平均次数 则有: $f(n,k)=\frac{n-k}{n}*f(n,k) + \ ...

  6. luogu P1291 [SHOI2002]百事世界杯之旅

    题目链接 luogu P1291 [SHOI2002]百事世界杯之旅 题解 设\(f[k]\)表示还有\(k\)个球员没有收集到的概率 再买一瓶,买到的概率是\(k/n\),买不到的概率是\((n-k ...

  7. P1291 [SHOI2002]百事世界杯之旅

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  8. 【Luogu1291】百事世界杯之旅(动态规划,数学期望)

    [Luogu1291]百事世界杯之旅(动态规划,数学期望) 题面 洛谷 题解 设\(f[i]\)表示已经集齐了\(i\)个名字的期望 现在有两种方法: 先说我自己的: \[f[i]=f[i-1]+1+ ...

  9. 「SHOI2002」「LuoguP1291」百事世界杯之旅(UVA10288 Coupons)(期望,输出

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

随机推荐

  1. ArrayList概述

    一. ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境 ...

  2. EasyRTMP内置进入摄像机中实现网络推流直播摄像机的功能

    本文转自博客:http://blog.csdn.net/jinlong0603/article/details/57468084 在前面的<如何用传统摄像机实现直接对接平台,类似于海康萤石.大华 ...

  3. window cmd 自动补全

    1. 用命令里输入regedit注册表 WIN+R 快捷输入 regedit regedit2. 键值改为9(十进制) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Co ...

  4. ZOJ - 3956 Course Selection System 【01背包变形】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3956 题意 给出N组Hi Ci 然后 要选出若干个 使得 这个式 ...

  5. (转)C++ STL set() 集合

    set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实 ...

  6. eclipse配置SVN

    1.设置 maven 工程svn忽略target 最新maven写法忽略的文件,还需忽略target.*/logs. Windows -> Preferences -> Team -> ...

  7. Windows Server 2012 修改桌面图标

    在virtualbox 4.2.18中装了个Windows Server 2012 来体验下,结果发现桌面图标都不知道在哪改.在百度文库上找到了解决方法:http://wenku.baidu.com/ ...

  8. hadoop集群异常问题总结

    1. Could not find or load main class java.library.path=.opt.hadoop.lib 我的环境上是 hadoopopts变量的配置问题,至于为啥 ...

  9. emacs设置tab缩进

    这两天使用Emacs自带的JavaScriptMode时,发现与其它编辑器下缩进不同,而且用emacs重新缩进对齐后,再用其它的编辑器打时缩进却乱掉了.分析应该是Tab缩进的问题,在.emacs中增加 ...

  10. 001 - 配置Pycharm的字体大小

    本文记录的是Pycharm2017年1月版本 1 配置代码区的字体大小 位置在 File -> setting -> Editor -> Color&Fonts -> ...