题解 | J

A Xor B Problem

https://ac.nowcoder.com/acm/contest/52244/A

找到第一个合法的去更新,如果这样是需要一直跳的

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,f[N],ne[N];
char s[N];
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int T;
    cin>>T;
    while(T--){
        cin>>n>>(s+1);
        ne[1]=0;
        for(int i=2,j=0;i<=n;i++){
            while(j&&s[i]!=s[j+1])j=ne[j];
            if(s[i]==s[j+1])j++;
            ne[i]=j;
        }
//         memset(f,0x3f,sizeof f);
        for(int i=1;i<=n;i++)f[i]=1e9;
        f[0]=0;
        for(int i=1;i<=n;i++){
            f[i]=f[i-1]+1;
            int j=i;
            while(ne[j]*2>i)j=ne[j];
            f[i]=min(f[i],f[i-ne[j]]+1);
        }
        cout<<f[n]<<'\n';
    }
}
全部评论

相关推荐

如题,他是要劝退我了吗
椛鸣:根据你的时间 来给你安排任务 如果你时间长 可能会参与到一些长期的项目 时间短 那就只能做点零工
点赞 评论 收藏
分享
我看到好多人都在说0offer好焦虑,结果一看是投了百度快手字节啥的。好像大家都是只想通过校招进大厂,对小公司是不考虑的吗😂可是能进大厂的难道不是只有少部分人吗,真心发问
梦想是成为七海千秋:沉默的大多数吧,喜欢晒的都是能引起共鸣的大厂,找小厂的人,别人也不认识你这个小厂,就自己偷偷找了实际上大多数人哪有什么机会能找到大厂
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务