CF938F Erasing Substrings 题解
Erasing Substrings
一个神奇的想法是设
发现对于状态
于是我们就可以考虑直接令
下面我们考虑转移。一种情况是
还有一种情况就是第
注意到代码实现与此处描述有一些区别,描述中的递推式是刷表法,而代码中的递推式是填表法;同时,代码中的 DP 顺序上文已经提到,
#include<bits/stdc++.h>
using namespace std;
const int N=5e3+100;
int n,m,all;
bool f[N][N];
char s[N];
int main(){
scanf("%s",s+1);
n=strlen(s+1);
while((2<<m)<=n) m++;
all=(1<<m);
for(int i=0;i<all;i++) f[i][i]=1;
for(int i=1;i<=n-all+1;i++){
char lim=127;
for(int j=i;j<i+all;j++) if(f[j-1][j-i]) lim=min(lim,s[j]);
putchar(lim);
for(int j=i;j<i+all;j++) f[j][j-i]=(f[j-1][j-i]&&(s[j]==lim));
for(int j=i;j<i+all;j++){
for(int k=0;k<m;k++){
if((j-i)&(1<<k)) f[j][j-i]|=f[j-(1<<k)][j-i-(1<<k)];
}
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端