2021-5-11 atcoder C - Replacing Integer
Posted 要坚持写博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-5-11 atcoder C - Replacing Integer相关的知识,希望对你有一定的参考价值。
本题题目的大概意思是:令res=|n-k|, 可以一直res=|res-k|。
我们做这题得分三种情况:
n<k时, 模拟一下子过程: |n-k|=k-n;
|k-n-k|=n;
|n-k|=k-n;
模拟到这一步就应该能看出来求的就是 k-n和n的最小值。
n>k时,我们可以先令res=n%k,此时就和第一种情况一样了,求res和k-res的最小值。
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
long long n,m;
long long res=0;
cin>>n>>m;
if(m>n)
{
cout<<min(n,m-n)<<endl;
}
else{
res=n%m;
cout<<min(res,m-res)<<endl;
}
return 0;
}
以上是关于2021-5-11 atcoder C - Replacing Integer的主要内容,如果未能解决你的问题,请参考以下文章
AtCoder Regular Contest 075 E - Meaningful Mean 树状数组求顺序对, 前缀和