随题记录20230915
题目描述
现在一个字符串
思路点拨
比较简单的一题。
考虑一个
发现我们从
时间复杂度
题目描述
现在有一个
思路点拨
还是比较简单一题。
我们定义状态
每一次转移可以使用刷表,用节点
我们可以使用类似于
题目描述
给定
思路点拨
比较套路。我们将序列
我们考虑一个区间和的计算方式,就是可以使用前缀和
我们可以把前缀和插入动态开点权值线段树来求。
时间,空间复杂度
题目描述
给定一个长度为
思路点拨
比较好玩的脑子题。
看到希望或的和最小,我们可以从高位往低位贪心。那么我们就希望对于二进制位
我们考虑如果一段内的该位为
这样贪心还有一个小问题,就是不可以将原来不可以分开的段分开。我们可以给不可与分开 (两个二进制位为
比较抽象,可以看代码理解(很短):
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=5e5+10;
int n,m,a[MAXN];
bool vis[MAXN];
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
int ans=0;
for(int j=60;j>=0;j--){
int flag=0,sum=0;
for(int i=1;i<=n;i++){
if(a[i]&(1ll<<j)) flag^=1;
if(!flag&&!vis[i]) sum++;
}
if(flag||sum<m) ans+=(1ll<<j);
else{
for(int i=1;i<=n;i++){
if(a[i]&(1ll<<j)) flag^=1;
if(flag&&!vis[i]) vis[i]=1;
}
}
}
cout<<ans;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现