LightOJ
来源:互联网 发布:我思考所以我存在知乎 编辑:程序博客网 时间:2024/06/03 21:06
LightOJ - 1027 (期望基础)
题目链接:LightOJ - 1027
题目大意: 给你n个门,每次进每个门的概率都是一样的,正数代表你x分钟后可以离开这里,负数代表你x分钟后回到这里。求预期离开的时间, 如果时间无限大,输出inf。
数据范围:
解题思路:
用
- 选了正数, 概率为
1n , 期望为1k∗ni , 结束。 - 选了负数, 概率为
1n ,xi 分钟之后回到原点, 那么期望为1n∗(E+xi)
如果正数个数为0, 答案为inf。
否则期望为
其中
最后化简结果:
代码:
/******************************************** *Author* :��ZZZZone *Created Time* : 五 10/13 18:48:36 2017 * Ended Time* : 五 10/13 18:54:58 2017*********************************************/#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <cmath>#include <cstdlib>#include <ctime>#include <stack>using namespace std;typedef pair<int, int> PII;typedef long long LL;typedef unsigned long long ULL;int T, n, Case;int gcd(int a, int b){ if(!b) return a; else return gcd(b, a % b);}int main(){ scanf("%d", &T); while(T--){ scanf("%d", &n); int cnt = 0, sum = 0; for(int i = 1; i <= n; i++){ int x; scanf("%d", &x); if(x > 0) cnt++; sum += abs(x); } printf("Case %d: ", ++Case); if(cnt == 0) printf("inf\n"); else{ int Gcd = gcd(sum, cnt); printf("%d/%d\n", sum / Gcd, cnt / Gcd); } } return 0;}
在此输入正文
阅读全文
0 0
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- 迷迷糊糊的合唱队列
- 深入解析Java中的equals()和hashCode()方法
- 6-3 链表逆置(20 分)
- CodeForces 864D Make a Permutation!
- 笔试坑点
- LightOJ
- 从开始到现在做过的项目记录之前端开发(图)
- 八人过河 程序 C++
- html-5
- 2017秋招C++面经
- 第六周LeetCode算法题两道
- jQuery 取值、赋值的基本方法整理
- JavaScript之使用JavaScript模仿oop编程
- 数据结构-->结构体