欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 蓝桥杯 1. 缺失的环节【算法赛】

蓝桥杯 1. 缺失的环节【算法赛】

2025/3/13 14:47:24 来源:https://blog.csdn.net/2301_81008647/article/details/146189384  浏览:    关键词:蓝桥杯 1. 缺失的环节【算法赛】

1.缺失的环节【算法赛】 - 蓝桥云课

水题.

先考虑朴素想法,枚举len从1到n,然后内部循环枚举.设枚举开始时值为x

这个时候发现,

只需要对x去掉最高位(如果为1),然后左移一位,再加上右面新增位就可以获得下一位值

显然有pow(2,len) > n - len + 1时必然有解.那么右边看成n放缩下,差不多就是logn时

时间复杂度O(n * logn)显然可以过.

代码

#include<iostream>
using namespace std;
string s;
int n;
const int N = 1e5+10;
bool vis[N];
int main()
{scanf("%d",&n);cin>>s;s = " " + s;for(int len = 1; len<=n; len++){int cur =0;for(int i =1; i<= len; i++){cur = (cur<<1) + s[i] - '0';}vis[cur] = true;for(int i = len + 1; i<= n; i++){if((cur>>(len-1)) & 1)cur -= 1 << (len-1);cur<<=1;cur += s[i] - '0';vis[cur] = true;}if(len == 1 && vis[0] == false){cout<<0<<endl;return 0;}for(int i = 1<<(len-1); i< 1<<len; i++){if(vis[i])continue;cout<<i<<endl;return 0;}}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词