题意转化:

一条长为n的路,路上有一点m,问你在什么地方再设一点a可以使路上任意一点到点a的概率大于到点m的概率


所谓概率更大,也就是说从离点m更远的一端到点a的长度小于到点m的长度

(因为此长度内所有的点到a的距离都小于到m的距离)


具体做法如下

  1. 因为这道题的点都是整数,所以先特判一下,当n=1时输出1(路的长度就为1,m<=n,所以m也只能为1,因此必不可能出现一点a使得这个端点到a的距离小于m,只能等于,此时概率为0,就愉快的输出1就好了)

  2. 对于长度不是1的道路,我们做如下处理:

因为上面说了是要使从离m更远的一端到m的距离大于到a的距离

即

我们把道路的中点mid看做一个分界点,当m处于[0,mid]中时,a要属于(m,n]才能使端点到a的距离更小,且当a与m的差值为1时(即a=m+1),才能使所谓的概率更大

同理,当m处于[mid,n]时,a要属于[0,mid)且a=m-1才能使概率更大


因为长度什么的都是整数,对于除法运算有限制,所以分奇数和偶数两种情况写(注意不要忘记考虑m正好位于中点的情况)

代码

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define maxn 100010 using namespace std;
int n,m;
int main(){
cin>>n>>m;
if(n==1){cout<<1;return 0;}
if(n%2==0&&m>n/2) cout<<m-1;
if(n%2==0&&m<=n/2) cout<<m+1;
if(n%2!=0&&m>=n/2+1) cout<<m-1;
if(n%2!=0&&m<n/2+1) cout<<m+1;
return 0;
}

码风丑勿喷

CF570B的更多相关文章

随机推荐

  1. java中根据后端返回的数据加载table列表

    <%//引入 js @ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML& ...

  2. 166个最常用的Linux命令,哪些你还不知道?

    linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.     线上查 ...

  3. maven 父子项目 pom

    父项目 <!--项目 id--> <artifactId>expressway-cloud-travel</artifactId> <!-- 子模块--> ...

  4. git 只提交部分文件 拉取pull远程仓库

    正常的团队开发中,在提交代码push之前要先pull拉取远程仓库的代码.而拉取pull操作需要先commit修改的文件才能成功. 那么问题来了,当我只想push提交部分代码的时候,同样需要pull拉取 ...

  5. 任意文件上传——tcp

    package chaoba; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...

  6. 一次MySQL死锁的排查记录

    前几天线上收到一条告警邮件,生产环境MySQL操作发生了死锁,邮件告警的提炼出来的SQL大致如下. update pe_order_product_info_test set end_time = ' ...

  7. JAVA_基础IO流随机存取文件流(四)

    随机存取文件流 RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类.并 且它实现了DataInput.DataOutput这两个接口,也就意味着 ...

  8. post传参数 传json格式参数

    如下: const dataObject = JSON.stringify({                                         "base64str" ...

  9. Docker 介绍和安装(一)

    # 下载阿里云的 Centos7 的docker.repo # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-pers ...

  10. 【Linux】如何查看命令来源于哪个包

    Debian:(Ubuntu等) 先安装apt-file sudo apt-get install -y apt-file apt-file update 查询命令:(已查询ifconfig为例) r ...