Ural 1209
2016-04-19 17:51
260 查看
链接:ural 1209
题意:有一个形如110100100010000…的字符串,给出N(1 ≤ N ≤ 65535)组问题,每一组读入Ki (1 ≤ Ki ≤ 2^31 − 1), 要求输出字符串的第Ki位数字为多少。
思路:这是一道比较裸的二分题目,利用数列的知识,计算Ki属于10^m中,即(1+2+…+m) >= Ki , 而(1+2+…+(m-1)) < Ki即可,若Ki=1时进行特殊判断。
代码:
题意:有一个形如110100100010000…的字符串,给出N(1 ≤ N ≤ 65535)组问题,每一组读入Ki (1 ≤ Ki ≤ 2^31 − 1), 要求输出字符串的第Ki位数字为多少。
思路:这是一道比较裸的二分题目,利用数列的知识,计算Ki属于10^m中,即(1+2+…+m) >= Ki , 而(1+2+…+(m-1)) < Ki即可,若Ki=1时进行特殊判断。
代码:
#include <iostream> using namespace std; bool check(long long x) { if (x == 1) return 1; long long l = 1, r = x, mid; long long k = 0; while (l <= r) { mid = (l+r)/2; long long t = (mid+1)*mid/2; if (t <= x) { if (mid > k) k = mid; l = mid+1; } else r = mid-1; } long long t = (k+1)*k/2+1; if (t == x) return true; return false; } int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { long long x; cin >> x; if (check(x)) cout << 1 << endl; else cout << 0 << endl; } }
相关文章推荐
- hdu5094 Maze
- Riak - 安装运维篇(1)
- Riak - 安装运维篇(1)
- HTTP协议详解(真的很经典)
- UIApplicationShortcutIconType
- Linux学习笔记(Redhat)
- Java程序员必须熟知的十项技术
- magento后台登陆404、Front controller reached 100 router match iterations的解决方案
- 类的const限定符
- android验证电话号码工具类
- javascript 模板引擎artTemplate
- 写博客的目的!
- android 定时一段时间执行
- Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护
- 项目经验分享--strust2一个程序员难解难分的队友啊!
- SQL-存储过程
- (水)POJ-2453 位运算(必看!)
- android 提升性能总结
- php中的move_uploaded_file
- 转:微信公众号的开发