码迷,mamicode.com
首页 > 其他好文 > 详细

VJ 1385 盗窃-月之眼

时间:2015-05-22 09:26:44      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:

背景

怪盗基德 VS OIBH
第三话

描述

怪盗基德第三次来到熟悉的OIBH总部。屡屡失败的OIBH这次看守的是The Eye of Moon。还是那个
房间,还是那扇门,不同的是OIBH对密码锁进行了改进。这次屏幕上只显示一个数n(基德:这是
改进了还是退化了?)。

密码生成方法:设集合A中A={1,2,...,n},B为A子集。对于B中任意一个元素x,2x均不在集合B中。

B中元素数目最大值即为密码。

格式

输入格式

一行,一个整数n(1<=n<=maxlongint)

输出格式

只有一个整数m,表示B中元素最大值

样例1

样例输入1

  100

样例输出1

  67

限制

OIBH在6s内就会发现,所以每个点只有1s时间给你

 

题解:首先对于n的后一半一定不在集合A中,所以后一半可以直接选取。之后对于另一半的后一半, 会被其前一半乘2给覆盖掉,于是只去其前一半,然后递归找下去。

CODE:

#include <iostream>
#include <cstdio>
#include <cstring>
#define REP(i, s, n) for(int i = s; i <= n; i ++)
#define REP_(i, s, n) for(int i = n; i >= s; i --)

using namespace std;

int main(){
    long long n, ans = 0;
    cin >> n;
    while(n > 0){
        ans += (n + 1) / 2;
        n /= 2; n /= 2;
    }
    cout << ans << endl;
    return 0;
}    

 

VJ 1385 盗窃-月之眼

标签:

原文地址:http://www.cnblogs.com/ALXPCUN/p/4521396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!