codeforce Gym 100500F Door Lock (二分)
2015-07-27 18:13
573 查看
根据题意略推一下,其实就是问你满足(a*(a+1))/2 < m <= ((a+1)*a(a+2))/2的a和m-(a*(a+1))/2 -1是多少。
二分求解就行了
二分求解就行了
#include<cstdio> using namespace std; typedef long long ll; int main() { int T; scanf("%d",&T); for(int k = 1; k <= T; k++){ ll n,m; scanf("%I64d%I64d",&n,&m); ll L = 0, R = n; ll mid , b1, b2; while(L < R){ mid = (L + R) >> 1; b1 = (mid*(mid+1))>>1; if(m <= b1) { R = mid; continue; } b2 = ((mid+2)*(mid+1))>>1; if(b2 < m) { L = mid; continue; } break; } if(L == R) mid = L; printf("Case %d: %I64d %I64d\n",k,mid,m-b1-1); } return 0; }
相关文章推荐
- RTC-ISL128
- server 2012 st iscsi服务器配置一
- Memcached 群集高可用性(HA)架构
- Java Math的 floor,round和ceil的总结
- Cucumber 安装
- 【KMP】codevs1204——寻找子串位置
- adb shell 之 dumpsys
- hdoj-1870-愚人节的礼物(栈)
- 终于发现windows蚕食内存的秘密
- 数据结构之并查集
- Cocos2d-x UI学习笔记
- Cocos2d-x UI学习笔记 分类: cocos2d代码编写 2015-07-27 18:10 5人阅读 评论(0) 收藏
- Android使用HttpClient向服务器传输文件
- leetcode 50: Pow(x, n)
- 理解图像中的高频分量和低频分量
- Eclipse使用中的奇奇怪怪问题
- Implement Trie (Prefix Tree) ——LeetCode
- navicat的注册和安装问题
- 浅谈数组与指针表示字符串的区别
- HTML—超文本标记语言