提交时间:2026-10-29 15:39:07

运行 ID: 43426

#include<bits/stdc++.h> #define ll long long using namespace std; const int N=3005; int f[N][N],n,m,len,k,dis; string s; ll ans[N]; int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)f[i][j]=0; for(int i=0;i<=n;i++)ans[i]=0; cin>>n>>m>>s; s=" "+s+"*"; for(int d=1;d<n;d++){ dis=0,len=0; for(int i=1,j=i+d;j<=n;i++,j++){ while(dis<=m && j+len<=n+1)dis+=s[i+len]!=s[j+len],len++; f[i][j]=len-1,dis-=(s[i]!=s[j]),len--; } } for(int i=1;i<=n;i++)for(int j=i+1;j<=n;++j)ans[i]++,k=min(j-i,f[i][j]),ans[i+k]--,ans[j]-=k,ans[j+1]+=k; for(int i=2;i<n;i++)ans[i]+=ans[i-1]; for(int i=2;i<n;i++)ans[i]+=ans[i-1]; for(int i=1;i<n;i++)cout<<ans[i]<<'\n'; return 0; }