欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

codeforce Gym 100500F Door Lock (二分)

发布时间:2023/12/9 66 豆豆
生活随笔 收集整理的这篇文章主要介绍了 codeforce Gym 100500F Door Lock (二分) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

根据题意略推一下,其实就是问你满足(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; }

 

转载于:https://www.cnblogs.com/jerryRey/p/4680870.html

总结

以上是生活随笔为你收集整理的codeforce Gym 100500F Door Lock (二分)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。