(紫书10.2.4)Headshot(概率)

题目链接

内网能进

题意:

一把手枪,里面是环形子弹,一共n个弹位,'0'表示弹位上没有子弹,'1'表示弹位上有子弹.你在打出一个空枪后,希望下一枪也是空枪,你有两种选择:

  • 继续开下一枪,也就是下一个位置
  • 转动弹位.开枪

分析:

继续开下一枪是一个条件概率,事件A表示"00"(开一枪为空下一枪也是空的),事件B表示"0?"(开一枪为空).而继续开一枪为空的概率为\(P(A)/P(B)\)
而转动弹位开枪概率为弹位中"0"的概率.

"00"个数为a,"0"的个数为b, 继续开枪为空的概率为a/b,转动弹位再开枪为空的概率b/n,
所以我们直接比较\(a*n\)\(b*b\)的大小即可.

void solve()
{
	ll len=strlen(str);
	ll a=0,b=0;
	str[len]=str[0];
	for(int i=1;i<=len;i++){
		if(str[i]=='0'&&str[i-1]=='0') a++;
		if(str[i]=='0') b++;
	}
	if(a*len<b*b) puts("ROTATE");
	else if(a*len==b*b) puts("EQUAL");
	else puts("SHOOT");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值