cf 570B Simple Game 水题
来源:互联网 发布:2016中韩双边贸易数据 编辑:程序博客网 时间:2024/06/03 11:15
链接:点击打开链接
One day Misha and Andrew were playing a very simple game. First, each player chooses an integer in the range from1 to n. Let's assume that Misha chose numberm, 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 toc. The boys agreed that if m and a are located on the same distance fromc, Misha wins.
Andrew wants to win very much, so he asks you to help him. You know the number selected by Misha, and numbern. 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, wherec is the equiprobably chosen integer from 1 to n (inclusive).
The first line contains two integers n andm (1 ≤ m ≤ n ≤ 109) — the range of numbers in the game, and the number selected by Misha respectively.
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.
3 1
2
4 3
2
In the first sample test: Andrew wins if c is equal to2 or 3. The probability that Andrew wins is2 / 3. If Andrew chooses a = 3, the probability of winning will be1 / 3. If a = 1, the probability of winning is0.
In the second sample test: Andrew wins if c is equal to1 and 2. The probability that Andrew wins is1 / 2. For other choices of a the probability of winning is less.
思路:a在1-n之间,m已知,使a到c的距离小于m到c的距离
如果2m>n,则m位于靠近n的一侧,此时只要取<m的数即可,同理,2m<n,则m位于靠近1的一侧,此时只要取>m的数即可
水题,但还是要写,因为自己绝对值这方面不怎么理解,比赛时也是误打误撞写出来的
代码:
#include<stdlib.h>#include<stdio.h>#include<cmath>#include<algorithm>#include<string>#include<string.h>#include<set>#include<queue>#include<stack>#include<vector>#include<functional> #include<map>using namespace std;const int maxn = 200 + 10;const int INF = (int)1e9;int n, m;int c, a;////判断|c-a|<|c-m|int main(){while (scanf("%d %d", &n, &m) != EOF) {if (n == 1)printf("1\n");//!!!else {if (n >= m * 2)printf("%d\n", m + 1);else printf("%d\n", m - 1);}}//system("pause");return 0;}
- cf 570B 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 ( 概率 )
- Codeforces 570B Simple Game【思维】
- 【CodeForces 570B】Simple Game(水)
- B. Simple Game
- B - Simple Game Time
- CF 578B "Or" Game
- 【cf 681B】 Economy Game
- Codeforces Round #316 (Div. 2)570B Simple Game(脑洞)
- Codeforces 570B Simple Game 概率求解,简单数学思维
- 570B. Simple Game Codeforces Round #316 (Div. 2)
- Codeforces Round #316 (Div. 2) -B-Simple Game-水题
- 腾讯视频qlv转mp4
- Hadoop 2.7.2 集群搭建
- 使用xhprof进行线上PHP性能追踪及分析
- codevs 1288 埃及分数
- 一个操作系统的实现:Descriptor 3详解
- cf 570B Simple Game 水题
- 读书笔记——初识保护模式
- js自动播放效果的实现
- C++中关于:文件包含太多,深度 = 1024
- linux永久修改主机名
- ITOO之界面显示、级联、模糊显示
- Vuejs——(8)Vuejs组件的定义
- 关于string,stringBuilder,stringBuffer
- [leetcode]15. 3Sum