UVa 10288 (期望) Coupons
题意:
每张彩票上印有一张图案,要集齐n个不同的图案才能获奖。输入n,求要获奖购买彩票张数的期望(假设获得每个图案的概率相同)。
分析:
假设现在已经有k种图案,令s = k/n,得到一个新图案需要t次的概率为:st-1(1-s);
因此,得到一个新图案的期望为(1-s)(1 + 2s + 3s2 + 4s3 +...)
下面求上式中的级数:
令
则
所以得到一个新图案的期望为:
总的期望为:
这道题的输出很新颖,如果是分数的话,就要以分数形式输出,具体细节详见代码。
1 #include <iostream> 2 #include <sstream> 3 #include <cstdio> 4 using namespace std; 5 typedef long long LL; 6 7 LL gcd(LL a, LL b) 8 { 9 if(b == 0) return a; 10 return gcd(b, a % b); 11 } 12 13 LL lcm(LL a, LL b) 14 { 15 return a / gcd(a, b) * b; 16 } 17 18 int LL_length(LL x) 19 { 20 stringstream ss; 21 ss << x; 22 return ss.str().length(); 23 } 24 25 void print_chars(char c, int n) 26 { 27 for(int i = 0; i < n; ++i) 28 putchar(c); 29 } 30 31 void output(LL a, LL b, LL c) 32 { 33 if(b == 0) 34 { 35 printf("%lld\n", a); 36 return; 37 } 38 int l = LL_length(a); 39 print_chars(' ', l+1); 40 printf("%lld\n", b); 41 printf("%lld ", a); 42 print_chars('-', LL_length(c)); 43 printf("\n"); 44 print_chars(' ', l+1); 45 printf("%lld\n", c); 46 } 47 48 int main() 49 { 50 int n; 51 while(scanf("%d", &n) == 1) 52 { 53 if(n == 1) 54 { 55 puts("1"); 56 continue; 57 } 58 LL x = 1, a = n + 1, b = 0, c; 59 for(int i = 2; i <= n-1; ++i) 60 x = lcm(x, i); 61 c = x; 62 x *= n; 63 for(int i = 2; i <= n-1; ++i) 64 b += x / i; 65 a += b / c; 66 LL g = gcd(b, c); 67 b /= g, c /= g; 68 b %= c; 69 output(a, b, c); 70 } 71 72 return 0; 73 }
代码君
转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4180474.html
UVa 10288 (期望) Coupons相关推荐
- UVA - 10288 Coupons(期望的性质)
题目链接 假设已经收集了kkk个图案,那么拿到一个新图案的概率为n−kn\frac{n-k}{n}nn−k,根据期望的性质,概率为p的期望会在1/p次后发生,那么答案就是∑i=1nnn−i\sum_ ...
- UVa 11762 (期望 DP) Race to 1
设f(x)表示x转移到1需要的次数的期望,p(x)为不超过x的素数的个数,其中能整除x的有g(x)个 则有(1-g(x)/p(x))的概率下一步还是转移到x,剩下的情况各有1/p(x)的概率转移到x/ ...
- UVa 1639 (期望) Candy
题意: 两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖.直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望. 分析: 紫书上面已经分析 ...
- Uva 11600 期望DP
题意:n个城市,相互可达(有n(n-1)/2条边),其中有一些道路上面有妖怪,现在,从1号城市出发,随机挑取一个城市走去,这个道路上的妖怪就会被消灭,求: 在平均情况下,需要走多少步,使得任意两个城市 ...
- uva 12730(期望经典)
选自: http://blog.csdn.net/myhelperisme/article/details/39724515 用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 ...
- 红书《题目与解读》第一章 数学 题解《ACM国际大学生程序设计竞赛题目与解读》
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 红书<题目与解读>第一章 数学 题解<ACM国际大学生程序设计竞赛题目与解读> ...
- 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》
虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
最新文章
- 低价iPhone你买吗? | 每日趣闻
- python篮球-基于Python/Java的人工智能篮球训练系统的制作方法
- 最简单的基于FFmpeg的移动端例子:IOS 推流器
- Codeforces 1025G Company Acquisitions (概率期望)
- 2015华为校招机试面试
- 玩Java 8 – Lambda,路径和文件
- sqoop导出solr数据_Apache Atlas - 强大的元数据管理工具
- ivar layout 相关知识点
- 在wamp里面配置feehicms
- GDAL源码剖析(九)之GDAL体系架构
- asp.net控件开发基础二
- CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
- w3c+android,w3cschool官方版app
- 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism
- Vivado IP核fifo使用指南
- 解决方案丨智慧写字楼:EasyCVR智能视频平台助力写字楼智慧化运营升级
- C语言 实现长整数的相加
- 【论文精度】AutoBERT-Zero (使用NAS搜索预训练语言模型)
- JS 去除Object中指定的key
- 6款程序员常用代码对比工具,你用过几款?
热门文章
- Githup高级搜索
- java loadjs_Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
- 函数或变量 rtenslearn_c 无法识别_深度学习的数学-卷积神经网络的结构和变量关系...
- 婚宴座位图html5,婚礼小知识,婚宴座位怎么安排才不得罪人(主桌)
- 轮播中小按钮的切换和高亮效果
- solr 英文模拟mysql like查询xml_Solr实现类似MySQL的LIKE查询功能
- sqlserver还原到mysql_SQLSERVER完整数据库还原(简单恢复模式)
- mac macaca android,Mac使用自动化测试macaca踩坑记
- android自动路由,GitHub - greatzi/RouterKit: 又一个路由库;Android平台对页面、服务的路由框架。自动化且易用。...
- 做python开发要用多大的内存卡_编程用surface怎么样发(学python要多大内存)