B - Simple Game Time
来源:互联网 发布:淘宝店铺价格 编辑:程序博客网 时间:2024/05/21 03:26
B - Simple Game Time (2016-05-06 23:01:29)
B - Simple Game Time
Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit Status Description One day Misha and Andrew were playing a very simple game. First, each player chooses an integer in the range from 1 to n. Let's assume that Misha chose number m, and Andrew chose number a. Then, by using a random generator they choose a random integer c in the range between 1 and n (any integer from 1 to n is chosen with the same probability), after which the winner is the player, whose number was closer to c. The boys agreed that if m and a are located on the same distance from c, Misha wins. Andrew wants to win very much, so he asks you to help him. You know the number selected by Misha, and number n. You need to determine which value of a Andrew must choose, so that the probability of his victory is the highest possible. More formally, you need to find such integer a (1 ≤ a ≤ n), that the probability that is maximal, where c is the equiprobably chosen integer from 1 to n (inclusive). Input The first line contains two integers n and m (1 ≤ m ≤ n ≤ 109) — the range of numbers in the game, and the number selected by Misha respectively. Output Print a single number — such value a, that probability that Andrew wins is the highest. If there are multiple such values, print the minimum of them. Sample Input
Input
3 1
Output
2
Input
4 3
Output
2
解释:
Hint In the first sample test: Andrew wins if c is equal to 2 or 3. The probability that Andrew wins is 2 / 3. If Andrew chooses a = 3, the probability of winning will be 1 / 3. If a = 1, the probability of winning is 0. In the second sample test: Andrew wins if c is equal to 1 and 2. The probability that Andrew wins is 1 / 2. For other choices of a the probability of winning is less.
这个题的大意是给你N个数(1到N)让你挑个数a,让对手挑个数m,一个随机的机器挑个数C(1到N的几率相等)看谁的C的距离近谁赢,如果距离相等,那你就输。让你找到你赢最大几率的一个数a。。。。
题解:
这个题一上来就要有自己的思路:你要争取你能得到最大的利益,而这个数a又不能与m相等。。。。
那么说你只能挑一个m+1和m-1这两个数。。。不要问我为什么。。你想想是不是这样你能得到最大赢得几率。。
那回头说来你要怎么判断如何选择m+1和m-1这两个数呢?想想。。。。
啊!只要比较n-m与m的值的大小就可以了啊!!是不是??
我这摸做会有坑,,(自己挖的),那么n=1,m=1时又是什么呢?那必是a=1啦,(虽然你必输),
那么说代码如下:
#include
int main()
{
long long n,m;
scanf("%lld %lld",&n,&m);
if(n-m >= m) //判断用m+1还是m-1
printf("%lld\n",m+1);
if(n == 1&&m == 1) //1 1的判别
printf("1\n");
else if(n == 2&&m == 1) //2 1的判别
printf("2\n");
else printf("%lld\n",m-1);
return 0;
}
代码菜鸟,如有错误,请多批评!!B <wbr>- <wbr>Simple <wbr>Game <wbr>Time
B - Simple Game Time
Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit Status Description One day Misha and Andrew were playing a very simple game. First, each player chooses an integer in the range from 1 to n. Let's assume that Misha chose number m, and Andrew chose number a. Then, by using a random generator they choose a random integer c in the range between 1 and n (any integer from 1 to n is chosen with the same probability), after which the winner is the player, whose number was closer to c. The boys agreed that if m and a are located on the same distance from c, Misha wins. Andrew wants to win very much, so he asks you to help him. You know the number selected by Misha, and number n. You need to determine which value of a Andrew must choose, so that the probability of his victory is the highest possible. More formally, you need to find such integer a (1 ≤ a ≤ n), that the probability that is maximal, where c is the equiprobably chosen integer from 1 to n (inclusive). Input The first line contains two integers n and m (1 ≤ m ≤ n ≤ 109) — the range of numbers in the game, and the number selected by Misha respectively. Output Print a single number — such value a, that probability that Andrew wins is the highest. If there are multiple such values, print the minimum of them. Sample Input
Input
3 1
Output
2
Input
4 3
Output
2
解释:
Hint In the first sample test: Andrew wins if c is equal to 2 or 3. The probability that Andrew wins is 2 / 3. If Andrew chooses a = 3, the probability of winning will be 1 / 3. If a = 1, the probability of winning is 0. In the second sample test: Andrew wins if c is equal to 1 and 2. The probability that Andrew wins is 1 / 2. For other choices of a the probability of winning is less.
这个题的大意是给你N个数(1到N)让你挑个数a,让对手挑个数m,一个随机的机器挑个数C(1到N的几率相等)看谁的C的距离近谁赢,如果距离相等,那你就输。让你找到你赢最大几率的一个数a。。。。
题解:
这个题一上来就要有自己的思路:你要争取你能得到最大的利益,而这个数a又不能与m相等。。。。
那么说你只能挑一个m+1和m-1这两个数。。。不要问我为什么。。你想想是不是这样你能得到最大赢得几率。。
那回头说来你要怎么判断如何选择m+1和m-1这两个数呢?想想。。。。
啊!只要比较n-m与m的值的大小就可以了啊!!是不是??
我这摸做会有坑,,(自己挖的),那么n=1,m=1时又是什么呢?那必是a=1啦,(虽然你必输),
那么说代码如下:
#include
int main()
{
long long n,m;
scanf("%lld %lld",&n,&m);
if(n-m >= m) //判断用m+1还是m-1
printf("%lld\n",m+1);
if(n == 1&&m == 1) //1 1的判别
printf("1\n");
else if(n == 2&&m == 1) //2 1的判别
printf("2\n");
else printf("%lld\n",m-1);
return 0;
}
代码菜鸟,如有错误,请多批评!!B <wbr>- <wbr>Simple <wbr>Game <wbr>Time
0 0
- B - Simple Game Time
- B. Simple Game
- 570B. Simple Game
- Codeforces 570B Simple Game
- CodeForces-570B Simple Game
- Codeforces 570 B.Simple Game
- Codeforces 570B Simple Game
- CodeForces 570B Simple Game 概率
- Codeforces 570 B. Simple Game ( 概率 )
- cf 570B Simple Game 水题
- Codeforces 570B Simple Game【思维】
- 【CodeForces 570B】Simple Game(水)
- Simple Game
- Simple Game
- Simple Game
- Codeforces Round #316 (Div. 2)570B Simple Game(脑洞)
- Codeforces Round #316 (Div. 2) -B-Simple Game-水题
- Codeforces 570B Simple Game 概率求解,简单数学思维
- Fastjson 初识
- Dynamics CRM2016 在实体命名时需要注意的事项
- 打破Android应用65K方法数
- linux打补丁和git打patch方法
- 原创springmvc+spring3+hibernate4框架整合,实现增删改查功能
- B - Simple Game Time
- strtok()函数
- Android开发学习笔记秘籍(二十)
- 页面,如何访问国际化资源文件的配置
- 取石子-博弈论
- redis群集服务器的搭建
- (转载)Kafka文件存储机制那些事
- 黑盒测试--等价类划分、边界值分析
- javaweb常见易错问题大汇总