P1385盗窃-月之眼
背景
怪盗基德 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时间给你
提示
简单数学题哦~~
来源
From 玛维-影之歌;
感谢vijos的朋友提供数据
对于long long 的数据我们无法用遍历的方法去做只能通过写出关于n的方程组解决问题
通过题目我们可以发现
如果我去51-100中的50个人,肯定是符合条件的
我再去13 - 24中的13个人还是符合条件的,如此,不断的递推下去,将所有符合条件的数目加起来就可以了
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def fun(n): if n == 1:return 1 if n == 0:return 0 ans = fun(n / 2 / 2) ans += n - n / 2 return ans import math n = int(raw_input()) print fun(n)
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-14 09:19:57