P1291 [SHOI2002]百事世界杯之旅

设$f(n,k)$表示共n个名字,剩下k个名字未收集到,还需购买饮料的平均次数

则有:

$f(n,k)=\frac{n-k}{n}*f(n,k) + \frac{k}{n}*f(n,k+1) +1$

移项整理,可得:

$f(n,k)=f(n,k+1)+\frac{n}{k}$

根据递推式,可得:

$f(n,0)=n\sum_{k=1}^{n}\frac{1}{k}$

蓝后gcd搞搞约分

注意输出

end.

#include<iostream>
#include<cstdio>
#include<cstring>
#define re register
using namespace std;
typedef long long ll;
ll p,q=,g; int n;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
int wid(ll x){//计算位数
int res=;
for(;x;x/=)++res;
return res;
}
int main(){
scanf("%d",&n);
for(re int i=;i<=n;++i){
p=p*i+q*n; q*=i;
g=gcd(p,q);
p/=g,q/=g;
}g=p/q,p%=q;
//分多种情况输出
if(!p) printf("%lld",g);
else{
for(re int i=wid(g);i>=;--i) putchar(' ');
printf("%lld\n",p);
if(g) printf("%lld",g);
for(re int i=wid(q);i>=;--i) putchar('-');
putchar('\n');
for(re int i=wid(g);i>=;--i) putchar(' ');
printf("%lld",q);
}return ;
}

最新文章

  1. NVelocity
  2. Ant OOM的问题
  3. 使用dom4j解析XML
  4. isAnimated函数
  5. HTML JSP Servlet 的 相对路径 绝对路径
  6. NameValueCollection详解
  7. ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多
  8. 将OutLook.exe注册为服务,让其一直保持开启状态
  9. junit测试用例加载spring配置文件
  10. Python re模块 正则表达式
  11. C#中结构与类的区别
  12. 将UTF8编码转化为中文 - NSString方法
  13. Java调用SQL脚本执行的方案
  14. Go变量逃逸分析
  15. ALV编辑数据后未更新到内表
  16. JAVA中的糕富帅技术——反射(一)
  17. Python vtk学习(1)
  18. js 日期格式转换(转载)
  19. 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)
  20. 如何查看thinkphp版本号?

热门文章

  1. 使用JS播放声音——SoundManager 2
  2. Angular基础----&gt;AngularJS的使用(一)
  3. Deploying Cloud Foundry on OpenStack Juno and XenServer (Part I)
  4. Asp SqlDataSource将数据库数据绑定在 GridView
  5. Android搜索自动提示功能 AutocompleteTextView
  6. Swift - WebKit示例解读
  7. Java 中编程的格式
  8. 【转】B2C电子商务系统设计精选
  9. SQL----&gt;mySQl安装for mac
  10. gitlab-runner ---CI