博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ 576 集齐卡片赢大奖(一)
阅读量:6503 次
发布时间:2019-06-24

本文共 736 字,大约阅读时间需要 2 分钟。

1 #include
2 #include
3 int main() 4 { 5 double ans; 6 int n; 7 while(~scanf("%d",&n)){ 8 if(n<10000){ 9 ans=0.0;10 for(int i=1;i<=n;i++)11 ans+=1.0*n/i;12 printf("%lld\n",(long long)(ans+0.5));13 }else{14 printf("%lld\n",(long long)(n*(log(n+1)+0.5772156649)));15 }16 }17 return 0;18 }

收集一种卡片的概率为1,然后再买一袋即可

收集2种的概率(n-1)/n,所以期
望为n/(n-1)
依次类推,得到所有的期望为:
f[n_] := Sum[n/k, {k, 1, n}]

上式可以优化,利用高数学的基数,Ln(n)=(1+1/2+1/3+....+1/n),可以精简为

n*(Ln(n)+0.5772156649) 其中常数为欧拉常数

最后注意前面当n不是很大的时候不能用公式!

本题WA无数次,最后经南工ACM群中大神指点和聪神的测试数据才得以AC!

转载于:https://www.cnblogs.com/shihuajie/archive/2013/03/21/2974285.html

你可能感兴趣的文章
Android Camera 相机开发详解
查看>>
利用 squid 反向代理提高网站性能原理总结
查看>>
&& 和 || 运算符的特殊用法记录
查看>>
eruke注册中心搭建
查看>>
c++,lua交互
查看>>
Linux Shell: 统计系统中占用Swap 的程序PID和占用大小
查看>>
Java通过JNI的方式调用C
查看>>
AOSuite V3.0 发布,开源JavaEE快速开发平台
查看>>
myeclipse提示“Project must be an XFire project”
查看>>
layui 之 upload组件
查看>>
进阶Java架构师必看的15本书
查看>>
uva 400 - Unix ls
查看>>
基本数据结构之ArrayList
查看>>
Eclipse引入JRE中类提示出错
查看>>
maven命令及使用
查看>>
activity在配置只支持竖屏时要注意个问题
查看>>
EditText
查看>>
1、Spark-Streaming的原理
查看>>
关于android监视器
查看>>
驰骋BPM恭喜签订,中安金路环境工程有限公司
查看>>