非官方题解|挑战赛#21-T5
2025-08-13 10:51:59
发布于:湖北
4阅读
0回复
0点赞
T5午枫的mex
-
难度:普及/提高- ?
-
思路分析
-
化简
需要计算所有 的 (最小未出现的非负整数)
(特判情况) 的特殊情况,直接输出 (因为只有 , 是 ) -
瞪眼:
当 时,最大的异或结果会接近但不小于,说人话就是最大异或结果 (其中)
值实际上是这个 -
计算:
找到大于 的最小 的幂次方
结果就是这个
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long n;
cin>>n;
//特判情况
if(n==1){
cout<<"1"<<endl; // mex{0}=1
continue;
}
//计算大于n的最小2的幂次方
long long m=1; //初始化为1
while(m<=n)m*=2;//找到大于n的最小2^k
cout<<m<<endl;
}
}
-
时间复杂度分析
此代码仅涉及 次测试样例循环,以及while(m<=n)m*=2;
,复杂度为
总复杂度:
这里空空如也
有帮助,赞一个