A Dangerous Maze LightOJ - 1027
这题意真是...
题意:你在一个迷宫里,有一些门,每个门有一个参数x,如果为正表明你进入门后可以花x的时间出去,如果为负表明你进入门后可以花-x的时间回到出发的地方。每次回到出发的地方之后,不能记得之前的操作,因此每次你到这个地方,选择每个门的概率都是相等的。求出去的期望时间。
方法:
解一个期望方程即可。
走每个门概率都是1/n。设期望时间为t,对于某个门,设参数为x,如果x为正的,那么走这个门出去的期望时间是x,对总期望的贡献是1/n*x;如果x是负的,那么走这个门之后出去的期望时间就是在这个门里面浪费的时间(-x)再加上t,对总期望的贡献就是1/n*(t-x)。那么就可以列出方程,手算一下就行。
例如:
3个门,参数分别为3,-6,-9
1/3*3+1/3*(x+6)+1/3*(x+9)=x
1/3*3+1/3*x+1/3*6+1/3*x+1/3*9=x
(1-1/3*2)x=1/3*(3+6+9)
x=18
3个门,参数分别为3,-30,-60
3 -30 -60
1/3*3+1/3*(x+30)+1/3*(x+60)=x
x=91
2个门,参数分别为-30,-60
1/2*(x+30)+1/2*(x+60)=x
x=inf
那么,设a2为负值的数量,a1为所有参数绝对值之和
1/n*a1=(1-1/n*a2)x
a1/n=(1-a2/n)x
x=a1/n/(1-a2/n)=a1/(n*(1-a2/n))=a1/(n-a2)
解完方程之后就很简单了...用奇怪的方法算一下a1和a2就行...
错误记录(本地):题意杀,把题意当成了“如果是正的,在开始的x分钟不能出去,之后就能出去;如果是负的,则相反”
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a1,a2,a3,T,TT;
int main()
{
int i,t;
scanf("%d",&T);
for(TT=;TT<=T;TT++)
{
scanf("%d",&n);
a1=a2=;
for(i=;i<=n;i++)
{
scanf("%d",&t);
if(t<)
a2++,a1-=t;
else
a1+=t;
}
if(a2==n)
{
printf("Case %d: inf\n",TT);
continue;
}
a2=n-a2;
a3=__gcd(a1,a2);
printf("Case %d: %d/%d\n",TT,a1/a3,a2/a3);
}
return ;
}
A Dangerous Maze LightOJ - 1027的更多相关文章
- Day11 - F - A Dangerous Maze LightOJ - 1027
求期望注意期望的定义,这题我们可以分正负数情况,设所求期望为E 正数: 1/n*x_i 负数:1/n*(E+x_j) 此时概率为1/n,根据期望定义,他回到起点后出去的期望为E,花费回起点的时间为x_ ...
- LightOJ - 1027 A Dangerous Maze —— 期望
题目链接:https://vjudge.net/problem/LightOJ-1027 1027 - A Dangerous Maze PDF (English) Statistics For ...
- Lightoj 1027 - A Dangerous Maze 【期望】
1027 - A Dangerous Maze PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Y ...
- [LightOJ 1027] A Dangerous Maze
A Dangerous Maze You are in a maze; seeing n doors in front of you in beginning. You can choose any ...
- A Dangerous Maze (II) LightOJ - 1395(概率dp)
A Dangerous Maze (II) LightOJ - 1395(概率dp) 这题是Light Oj 1027的加强版,1027那道是无记忆的. 题意: 有n扇门,每次你可以选择其中一扇.xi ...
- LightOJ - 1395 A Dangerous Maze (II) —— 期望
题目链接:https://vjudge.net/problem/LightOJ-1395 1395 - A Dangerous Maze (II) PDF (English) Statistic ...
- [LOJ 1027] Dangerous Maze
A - A Dangerous Maze Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- LightOJ 1027 - A Dangerous Maze(求期望)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1027 题意:又一个迷宫,有n个门,每个门又一个值num,如果num>0 说明在n ...
- LightOj 1027 A Dangerous Maze【概率】
题目链接:http://www.lightoj.com/volume_showproblem.php? problem=1027 题意: 你面前有n个门,每一个相应一个数字,若为正xi.代表xi分钟后 ...
随机推荐
- Eclipse搭建Web Service服务
1.建立动态Web工程(Dynamic Web Project),工程名为Server.编写类HelloWorld. package com.mysever; public class HelloWo ...
- python day-01 (python基础知识1)
1.计算机组成(参与运算的) 主板+CPU+内存 2.python 简史 解释型语言,弱类型语言(eg:a 可以表示很多意思 a=1 或 a = “小红”) 3.数据类型: int(整数类型): ...
- Java程序员从笨鸟到菜鸟之(十五)Html基础积累总结(下)
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 一:表格 1.表格的基本语法 <table>...</table> ...
- 前端遇上Go: 静态资源增量更新的新实践
前端遇上Go: 静态资源增量更新的新实践https://mp.weixin.qq.com/s/hCqQW1F8FngPPGZAisAWUg 前端遇上Go: 静态资源增量更新的新实践 原创: 洋河 美团 ...
- 百度dureos CMake Error
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, ...
- 【转】使用git 工具下载android.jar Source Code
为了开发android应用,在开发时发现sdk没有源代码,这样在开发时太麻烦了,下面说说如何下载源代码,以及如何配置. 下载源代码需要git,先下载一个git.下面的操作都是在windows下完成的. ...
- 数据结构之 排序---折半插入排序(时间复杂度 O(nlog2 n) )
排序 Time Limit: 1000MS Memory limit: 32678K 题目描述 给你N(N<=100)个数,请你按照从小到大的顺序输出. 输入 输入数据第一行是一个正整数N,第二 ...
- c#-关于自动属性的思考
参考:c#-关于自动属性的思考 我的理解:自动属性跟 公有字段 一模一样,编程习惯而已.目前是这么认为的. 自动属性:public string Name{ get; set } 公有字段:pub ...
- hdu-5675 ztr loves math(数学)
题目链接: ztr loves math Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- 自定义UITabBarController
用的时候直接拷贝代码即可. 1.在AppDelegate设置跟控制器为:PQTabBarController #import "PQTabBarController.h" @int ...