专栏文章
题解:CF2053C Bewitching Stargazer
CF2053C题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @miqmm8bh
- 此快照首次捕获于
- 2025/12/04 07:16 3 个月前
- 此快照最后确认于
- 2025/12/04 07:16 3 个月前
CF2053C Bewitching Stargazer
分析
又是一道结论题。
由于两边在进行区间拆分的过程中是严格对称的,所以最终的答案显然是某个系数 乘上中位数。
然后我们发现我们只需要一层一层模拟就好了,我们将 不断除以二,设 本身这一层为第 层;如果第 层的 是奇数,令 加上 即可。
代码应该相当好懂,记得把 的值先存一下,后面算中位数还要用到。
AC CODE
CPP#include<bits/stdc++.h>
using namespace std;
int t;
long long n,k;
int main(){
cin>>t;
while(t--){
cin>>n>>k;
long long t=n;
long long tmp=1;
long long cnt=0;
while(1){
if(n<k){
break;
}
if(n%2==1){
cnt+=tmp;
}
n/=2;
tmp*=2;
}
cout<<cnt*(1+t)/2<<"\n";
}
return 0;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...