最小表示法(字符串同构字典序最值) original link - http://poj.org/problem?id1509题意求出一个字符串的循环同构中字典序最小的那个。解析假设定下两个指针i,ji,ji,j考虑比较这两个位置开始的字典序。往后延直到遇到一个不一样的字符然后比较这对字符的大小。假设中间走过kkk个相同的字符然后得出ilt;jilt;jij那么显然对于[i,ik][i,ik][i,ik]这些位置都在[j,jk][j,jk][j,jk]的位置存在更优解。所以我们让i→ik1i\to ik1i→ik1。同理igt;jigt;jij时跳转j→jk1j\to jk1j→jk1。由于两个指针都最多只跳转nnn次所以时间复杂度O(2n)O(2n)O(2n)。代码/* * Author : Jk_Chen * Date : 2019-09-01-09.34.36 */#includestdio.h#includemath.h#includeiostream#includealgorithm#includestring.husingnamespacestd;#defineLL long long#definerep(i,a,b) for(int i(int)(a);i(int)(b);i)#defineper(i,a,b) for(int i(int)(a);i(int)(b);i--)#definemmm(a,b) memset(a,b,sizeof(a))#definepb push_back#definepill pairint, int#definefi first#definese second#definedebug(x) cerr#x x\n;constLL mod1e97;constintmaxn1e49;LLrd(){LL ans0;charlast ,chgetchar();while(!(ch0ch9))lastch,chgetchar();while(ch0ch9)ansans*10ch-0,chgetchar();if(last-)ans-ans;returnans;}/*_________________________________________________________head*/charx[maxn];intmain(){inttrd();while(t--){gets(x);intlenstrlen(x);inti0,j1,k0;while(ilenjlenklen){intcmpx[(ik)%len]-x[(jk)%len];if(!cmp){k;}else{if(cmp0)ik1;elsejk1;if(ij)j;k0;}}intposmin(i,j);// 解的位置printf(%d\n,pos1);}return0;}

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/23 4:54:42
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/24 14:25:52
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/24 14:49:33
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:28:18
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/24 11:09:24

日新闻

周新闻