UVa 1636 - Headshot(概率)
链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4511
题意:
首先在手枪里随机装一些子弹,然后抠了一枪,发现没有子弹。
你希望下一枪也没有子弹,是应该直接再抠一枪(输出SHOOT)呢,还是随机转一下到任意位置再抠(输出ROTATE)?
如果两种策略下没有子弹的概率相等,输出EQUAL。
手枪里的子弹可以看成一个环形序列,开枪一次以后对准下一个位置。
例如,子弹序列为0011时,第一次开枪前一定在位置1或2(因为第一枪没有子弹),因此开枪之后位于位置2或3。
如果此时开枪,有一半的概率没有子弹。序列长度为2~100。
分析:
直接抠一枪没子弹的概率是一个条件概率,等于子串00的个数除以00和01总数(也就是0的个数)。
转一下到任意位置再抠没子弹的概率等于0的比率。
设子串00的个数为a,0的个数为b,则两个概率分别是a/b和b/n。问题就是比较a*n和b*b。
前者大就是SHOOT,后者大就是ROTATE,否则就是EQUAL。
代码:
import java.io.*;
import java.util.*; public class Main {
static char s[] = new char[100+5]; public static void main(String args[]) {
Scanner cin = new Scanner(new BufferedInputStream(System.in)); while(cin.hasNext()) {
s = cin.nextLine().toCharArray();
int a = 0, b = 0, n = s.length;
for(int i = 0; i < n; i++) {
if(s[i] == '1') continue;
b++;
if(s[(i+1)%n] == '0') a++;
}
if(a * n > b * b) System.out.println("SHOOT");
else if(a * n < b * b) System.out.println("ROTATE");
else System.out.println("EQUAL");
}
cin.close();
}
}
UVa 1636 - Headshot(概率)的更多相关文章
- uva 1636 Headshot
https://vjudge.net/problem/UVA-1636 首先在手枪里随机装一些子弹,然后抠了一枪,发现没有子弹.你希望下一枪也没有子弹,是应该直接再抠一枪(输出SHOOT)呢,还是随机 ...
- 紫书 例题 10-9 UVa 1636 (概率计算)
小学数学问题 记得分数比较的时候可以交叉相乘(同号) #include<cstdio> #include<cstring> #define REP(i, a, b) for(i ...
- UVa 1636 (概率) Headshot
既然是第一道概率题,就正儿八经地分析一下吧. 题意: 有一个左轮枪,里面随机装了或者没装子弹,用一个01序列表示.现在已知扣动第一次扳机没有子弹,问是继续扣动扳机还是随机转动一下再扣,那种选择使得第二 ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA 11021 - Tribles(概率)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=481&page=s ...
- uva 11346 - Probability(概率)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=2321">题目链接:uva 11346 - ...
- UVA 10288 - Coupons(概率递推)
UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&p ...
- UVA 11021 - Tribles(概率递推)
UVA 11021 - Tribles 题目链接 题意:k个毛球,每一个毛球死后会产生i个毛球的概率为pi.问m天后,全部毛球都死亡的概率 思路:f[i]为一个毛球第i天死亡的概率.那么 f(i)=p ...
- UVA 11181 dfs 概率
N friends go to the local super market together. The probability of their buying something from them ...
随机推荐
- postgres entityframework foreignkey
public class Model { [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identit ...
- spring-boot-starter-data-elasticsearch实现es的增删查改
首先,必须吐槽一下,springboot这个elasticsearch包对于elasticsearch的支持十分不友好,目前只支持很低版本的elasticsearch,如果有哪位大牛知道如何兼容更高版 ...
- Java类加载器ClassLoader总结
JAVA类装载方式,有两种: 1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中. 2.显式装载, 通过class.forname()等方法,显 ...
- Linux下查看Tomcat的控制台输出信息
Linux下查看Tomcat的控制台输出信息 首先使用SSH连接到数据库,然后点击window创建一个new terminal, 进入tomcat/logs/文件夹下,输出控制台信息,命令如下: cd ...
- VUE的两种跳转push和replace对比区别
router.push(location) 在vue.js中想要跳转到不同的 URL,需要使用 router.push 方法. 这个方法会向 history 栈添加一个新的记录,当用户点击浏览器后退按 ...
- Java 文件上传与下载、email
1. 文件上传与下载 1.1 文件上传 文件上传,要点: 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> ...
- 汉诺塔matlab实现
Matlab的递归调用,好久不用matlab了,练练手. global handCount; handCount = 1; huuotsun(1, 2, 3, 3) function hu ...
- 日常捕获的野生知识 - javascript 与 类
javascript 并不提供类这样方便实用的面向对象类型,今天学习到了,直接上代码: <!DOCTYPE html> <html lang="en"> & ...
- 139.00.003 Git学习-Git时光机之Inbox体系(三)
一.Git时光机之Inbox 体系 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有G ...
- Idea工具使用
Idea Project与module的理解 1.基础环境的搭建 1.1.IDEA使用--字体.编码和基本设置 2.插件的安装 2.1.在IDEA中配置Gauge环境 2.2.IdeaVim的安装:: ...