专栏文章
题解:P13686 【MX-X16-T4】「DLESS-3」XOR and Split
P13686题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioepq6h
- 此快照首次捕获于
- 2025/12/02 17:59 3 个月前
- 此快照最后确认于
- 2025/12/02 17:59 3 个月前
主要思路
又是一道(可以直接求出答案的)思维题。
时手动枚举, 时答案分别为 。
时,测试点 提示我们思考 时情形。
时,显然每个数单独划分为一段权值最大(否则所有 均不超过 ,从而异或和不超过 )。
此时权值为 (熟知 时 )。
进一步, 时,仍可分为 组,只需在 的基础上加入 个元素,保证异或和为 即可(容易保证),权值为 。且由于所有 均不超过 知 最优。
综上所述,答案为 。
考场抽象代码:
CPP#include <bits/stdc++.h>
using namespace std;
long long t,n,p=1;
int main(){
cin>>t;
while(t--){
cin>>n; p=1;
if(n<=3){
if(n==1) cout<<1<<endl;
else if(n==2) cout<<3<<endl;
else cout<<2<<endl;
continue;
}
while(p<n) p*=2;
if(n==p-1||n==p) cout<<n<<endl;
else cout<<p-1<<endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...