传送门:It’s bertrand paradox. Again!
标签:随机
题目大意
有两个人分别用两种方式在二维平面上随机生成1e5个圆,每个圆上的每一个点(x,y)都满足-100<x<100且-100<y<100,现在将某个人生成的1e5个圆的圆心和半径告诉你,问你这个人是谁。两个人生成圆的方式分别为:(1)1、随机等概率地从开区间(-100,100)生成两个整数x,y。
2、随机等概率地从闭区间[1,100]中生成一个r。3、判断(x,y )为圆心、r为半径的圆是否满足要求,若不满足,返回步骤2重新生成r,若满足,则将该圆加入到结果中。(2)1、随机等概率地从开区间(-100,100)生成两个整数x,y,随机等概率地从闭区间[1,100]中生成一个r。2、判断(x, y)为圆心、r为半径的圆是否满足要求,若不满足,返回步骤1重新生成x,y,r,若满足,则将该圆加入到结果中。
输入:第一行一个正整数n=1e5,代表圆的总数。接下来n行每行三个整数x,y,r(-100<x,y<100,0<r<100),分别代表圆心的坐标和半径。
输出:如果这些圆是第一个人生成的,输出“bit-noob”,否则输出“buaa-noob”。
算法分析
- 显然这题跟随机有关,我们只要暴力跑100个数据找规律就行了(不是)。好吧看来并不需要,因为这题实在太简单了。我们先看两种生成方法有什么区别,最明显的就是第一种方法要三步而第二种方法只要两步。观察多出来的一步我们会发现,第一种方法的圆心和半径是分开生成的,而第二种方法的圆心和半径是在同一步中同时生成的。
- 因为两种方法都是随机的,所以都有可能生成不符合要求的圆。遇到这种情况,第一个人将半径重新生成直到圆符合要求,第二个人则是将整个圆重新生成,即圆心坐标和半径都替换。那么很容易看出,第一个人生成的所有的圆的圆心坐标都是一次确定的,