luogu P3152 正整数序列

Posted naruto-mzx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P3152 正整数序列相关的知识,希望对你有一定的参考价值。

题目描述

kkk制造了一个序列,这个序列里的数全是由正整数构成的。你别认为她的数列很神奇——其实就是1, 2, …, n而已。当然,n是给定的。kkk的同学lzn认为0是一个好数字(看上去很饱满有木有),所以他机智的趁kkk不在把这个序列全变成了0(其实只是准备窝)~

可是kkk突然回来了!于是lzn的计划破灭了。但是他并不甘心,就和kkk说:我可以每次从这个序列中选取一些数,然后一起减去一个相同的数(当然也是正整数)。然后经过有(wu)限(qiong)次这样的操作后,这个序列就可以全变成0。

kkk当然不信咯,于是lzn就求出了他最少要做几次这样的操作,才能使这个序列全部变成0。

输入格式

一个正整数n

输出格式

最少操作次数

如果无解输出-1


肯定是不存在无解的,答案肯定是要<=n的

最优方案即为,对于所有>=Max/2+1 的数减去 Max/2+1

得到规律,最少要log2(n)+1次

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
signed main(){
    cin>>n;
    cout<<(int)log2(n)+1<<endl;
}

以上是关于luogu P3152 正整数序列的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P3152 正整数序列

P3152 正整数序列

luogu P4065 [JXOI2017]颜色

luogu P1908 逆序对 |树状数组

luogu P3157 [CQOI2011]动态逆序对(CDQ分治)

luogu3702-[SDOI2017]序列计数