首页 > 其他分享 >【NOIP提高】看电影

【NOIP提高】看电影

时间:2022-12-26 18:31:28浏览次数:34  
标签:概率 NOIP int ans1 提高 ans 电影 编号 include


Description

听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N(N >= K)人。于是机智的你想到了一个公平公正的方法决定哪K人去看电影。
N个人排成一圈,按顺时针顺序标号为1 - N,每次随机一个还存活的人的编号,将这个人踢出。继续上述操作,直到剩下K个人。
但这样显然太无聊了,于是小S又想出一个牛逼的方法。
N个人排成一圈,按顺时针顺序标号为1 - N,每次随机一个1 - N的编号,假设随机到的编号是X,如果编号为X人还未踢出,则将这个人踢出,否则看编号为X % N + 1(即顺时针顺序下一个编号)的人是否存活,如果还未踢出则将他踢出,否则继续看编号(X + 1)% N +1的人,如果已被踢出看顺时针的下一个…………,以此类推,直到踢出一个人为止。重复上述操作,直到剩下K个人。
已知小S的编号是Id,问按照小S的方法来他有多少的概率可以不被踢出,成功得到看电影的机会。

Solution

这题是一道水题,一开始我画了一颗概率树,然后在n=2,3,4的概率树,发现答案是等于k/n的。
然后试着证明了一下(猜想是很重要的),因为是一个环,所以每个人的概率是相同的,因为每个人要达到的目标是剩下的k个中的一个,那么在等概率的情况下,每个人的概率kn。
记得要gcd。

Code

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
int i,j,k,l,t,n,m,ans,ans1;
int gcd(int x,int y){
int o=1;
while(o){
o=x%y;
x=y;
y=o;
}
return x;
}
int main(){
scanf("%d%d%d",&n,&k,&m);
ans=k,ans1=n;
t=gcd(ans,ans1);
printf("%d/%d",ans/t,ans1/t);
}


标签:概率,NOIP,int,ans1,提高,ans,电影,编号,include
From: https://blog.51cto.com/u_15923198/5970030

相关文章

  • 如何提高网站的权重
    网站权重是一个虚值,不过不可否认,其存在是有意义的,不论是seoer还是客户都对网站权重提升很看重,所以基于我们做seo要满足客户需求的标准,我们不得不将优化方向更偏向于网站权重......
  • P1044 [NOIP2003 普及组] 栈
    题目背景栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。栈的重要......
  • [NOIP2009 普及组] 多项式输出
    [NOIP2009普及组]多项式输出题目描述一元$n$次多项式可用如下的表达式表示:$$f(x)=a_nxn+a_{n-1}x{n-1}+\cdots+a_1x+a_0,a_n\ne0$$其中,$a_ix^i$称为$i$次项,$a......
  • P1003 [NOIP2011 提高组] 铺地毯
    P1003[NOIP2011提高组]铺地毯题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有$n$张地毯......
  • 电影院观影人数统计
    电影院观影人数统计 一、基本知识和背景  图像识别和监控相配合,能够帮助使用者获得监控内容的定量信息。通过对所获得的数据的统计分析,就能够得到超出图像本身的价值,并......
  • AcWing341. 洛谷P1073, NOIP2009 最优贸易
    AcWing题目传送门洛谷题目传送门题目大意\(~~~~~~\)一个投机倒把的奸商想要通过城市不太健全的贸易系统坑点钱,任意城市都可以买入或者卖出水晶球,他想尽量在便宜的城市买......
  • P1064 [NOIP2006 提高组] 金明的预算方案
    P1064[NOIP2006提高组]金明的预算方案在P1064[NOIP2006提高组]金明的预算方案这题中,引入了主件和附件的关系比如说要求你加入集训队试训之前,一定要刷完专题......
  • 洛谷 P2679 [NOIP2015 提高组]子串
    \(70pts\):记\(sub_A(i)\)表示\(A\)的前\(i\)个字符构成的子串,相应地,\(sub_B(i)\)为\(B\)的前\(i\)个字符构成的子串。设\(f(i,j,k)\)表示在\(sub_A(i......
  • 有了这25个正则表达式,代码效率提高80%
    本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。前言大家好,我是林三心,在日常开发中,正则表达式是非常有用的,正则表达式在每个语言中都是可以使用的,他就跟JSON一......