UVa11384 - Help is needed for Dexter(手玩大法)

题目链接

简介:
给定正整数n,用最少的操作次数使得整个序列1,2,3,…,n都变成0
每次操作可以选择一个或多个整数,同时减去一个相同的正整数

分析:
手玩之后可以发现:每次都选择n/2的后半段删除最优
这里写图片描述

实际上答案就是n转化成二进制的位数

tip

手玩大法好,
猜结论保AC

//这里写代码片
#include<cstdio>

using namespace std;

int main()
{
    int n;
    while (scanf("%d",&n)!=EOF)
    {
        int ans=0;
        while (n)
        {
            ans++;
            n>>=1;
        }
        printf("%d\n",ans);
    }
    return 0;
}
posted @ 2017-10-15 09:53  wtt3117  阅读(78)  评论(0编辑  收藏