8.字符串
字符串
开题顺序:
luogu P3501 [POI2010]ANT-Antisymmetry
- 多倍经验: SP15569 Antisymmetry
- 题解
luogu P4555 [国家集训队]最长双回文串
luogu P6114 【模板】Lyndon 分解
BZOJ2176 Strange string
-
最小表示法板子。
-
因为字符值域
,所以需要unsigned char
代替char
。点击查看代码
unsigned char s[20000010]; int main() { int n,i,l,r,len; cin>>n; for(i=1;i<=n;i++) { cin>>s[i]; s[n+i]=s[i]; } l=1; r=2; while(l<=n&&r<=n) { len=0; while(len<=n-1&&s[l+len]==s[r+len]) { len++; } if(len==n) { break; } else { if(s[l+len]>s[r+len]) { l+=len+1; l+=(l==r); } else { r+=len+1; r+=(l==r); } } } for(i=min(l,r);i<=n;i++) { cout<<s[i]; } for(i=1;i<=min(l,r)-1;i++) { cout<<s[i]; } return 0; }
CF471D MUH and Cube Walls
CF494B Obsessive String
CF432D Prefixes and Suffixes
-
第一问显然是 LibreOJ 10036. 「一本通 2.1 练习 2」Seek the Name, Seek the Fame ,直接反着跳
即可。 -
设
设 在原串中的出现次数,则有 ,初始时 。点击查看代码
int nxt[100010],f[100010]; char s[100010]; vector<int>ans; int main() { // #define Issac #ifdef Issac freopen("in.in","r",stdin); freopen("out.out","w",stdout); #endif int n,i,j; scanf("%s",s+1); n=strlen(s+1); for(i=2,nxt[1]=j=0;i<=n;i++) { while(j>=1&&s[i]!=s[j+1]) { j=nxt[j]; } j+=(s[i]==s[j+1]); nxt[i]=j; } for(i=n;i>=1;i--) { f[i]+=1; f[nxt[i]]+=f[i]; } for(i=n;i>=1;i=nxt[i]) { ans.push_back(i); } reverse(ans.begin(),ans.end()); cout<<ans.size()<<endl; for(i=0;i<ans.size();i++) { cout<<ans[i]<<" "<<f[ans[i]]<<endl; } return 0; }
luogu P2375 [NOI2014] 动物园
CF965E Short Code
CF1616H Keep XOR Low
CF558E A Simple Task
luogu P9717 [EC Final 2022] Binary String
luogu P3311 [SDOI2014] 数数
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18521907,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2023-11-04 B3610 [图论与代数结构 801] 无向图的块 题解