poj1509最小表示法
题意:
给你一个循环串,然后找到一个位置,使得从这个位置开始的整个串字典序最小。
思路:
最小表示法的建档应用,最小表示法很好理解,就点贪心的意思,一开始我们枚举两个起点i,j然后谁大谁往后移动,相等则比较下一个,这样到最后取一个小的值就行了,时间复杂度是O(n)的,很好的小方法。
#include<stdio.h>
#include<string.h>
char str[10005];
int GetMin(char *str)
{
int len = strlen(str);
int i = 0 ,j = 1 ,k = 0;
while(i < len && j < len && k < len)
{
int t = str[(i+k)%len] - str[(j+k)%len];
if(!t) k ++;
else
{
t > 0 ? i = i + k + 1 : j = j + k + 1;
if(i == j) j ++;
k = 0;
}
}
return i < j ? i : j;
}
int main ()
{
int t;
scanf("%d" ,&t);
while(t--)
{
scanf("%s" ,str);
printf("%d\n" ,GetMin(str)+1);
}
return 0;
}
poj1509最小表示法的更多相关文章
- poj1509 最小表示法
#include<stdio.h> #include<string.h> #define maxn 10010 char s[maxn]; int getmin() { int ...
- POJ1509 Glass Beads(最小表示法 后缀自动机)
Time Limit: 3000MS Memory Limit: 10000K Total Submissions: 4901 Accepted: 2765 Description Once ...
- 最小标示法模板 poj1509
最小标示法:给定一个字符串,不断将其最后一个字符放到开头,最终会得到n个字符串,称这n个字符串循环同构,这些字符串中字典序最小的一个,就是最小表示法 #include<iostream> ...
- [poj1509]Glass Beads(最小表示法)
题目大意:求循环同构的字符串的最小字典序. 解题关键:最小表示法模板题. #include<cstdio> #include<cstring> #include<algo ...
- HDU 4162 Shape Number (最小表示法)
题意:给你一串n个数,求出循环来看一阶差的最小字典序:数字串看成一个顺时针的环,从某一点开始顺时针循环整个环,保证字典序最小就是答案 例如给你 2 1 3 就会得到(1-2+8 注意题意负数需要加8) ...
- POJ 1635 树的最小表示法/HASH
题目链接:http://poj.org/problem?id=1635 题意:给定两个由01组成的串,0代表远离根,1代表接近根.相当于每个串对应一个有根的树.然后让你判断2个串构成的树是否是同构的. ...
- HDU 2609 最小表示法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609 题意:给定n个循环链[串],问有多少个本质不同的链[串](如果一个循环链可以通过找一个起点使得和 ...
- HDU 4162 最小表示法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4162 题意:给定一个只有0-7数字组成的串.现在要由原串构造出一个新串,新串的构造方法:相邻2个位置的数字 ...
- POJ 1509 最小表示法
题目链接:http://poj.org/problem?id=1509 题意:给定一个字符串,求一个起点使字符串从该起点起的字符串字典序最小[题目的字符串起点从1开始] 思路:最小表示法模板题 #de ...
随机推荐
- MyBatis中模糊查询
接口 // 模糊查询 List<User> getUserLike(String value); Mapper.xml文件 <!-- 模糊查询 --> <select i ...
- Java8的新特性--函数式接口
目录 函数式接口 什么是函数式接口 函数式接口的使用 Java8内置的四大核心函数式接口 一.Consumer:消费型接口(void accept(T t)) 二.Supplier:供给型接口(T g ...
- FreeBSD 12.2 阿里云镜像使用说明
目前直接从阿里云 12.1 升级 12.2 会导致错误.镜像非本人制作.FreeBSD 12.2 阿里云镜像使用说明镜像下载地址: http://t.cn/A6taB5jO修改内容:对 /usr/sr ...
- POJ_2533 Longest Ordered Subsequence 【LIS】
一.题目 Longest Ordered Subsequence 二.分析 动态规划里的经典问题.重在DP思维. 如果用最原始的DP思想做,状态转移方程为$DP[i] = max(DP[j] + 1) ...
- 为 .NET 打 Call,为国产平台 Gitee 打 Call,我的 .NET/C# 开源项目清单,同步维护于 Github 和 Gitee
所有项目遵循 MIT 开源协议.可以随意使用,但是需在源代码和产品关于画面保留版权声明和我的网站链接,谢谢. Sheng.Winform.IDE Github:https://github.com/i ...
- 想了解FlinkX-Oracle Logminer?那就不要错过这篇文章
FlinkX-Oracle Logminer模块是FlinkX基于Logminer对Oracle重做日志进行实时采集分析,可对Oracle进行实时同步也可以通过指定SCN或者时间戳从某个节点进行同步, ...
- SFDC 利用Schema.Describe来取得Picklist所有的选项
Salesforce的开发语言Apex与Java极为类似.也有封装,基础,多态特性. 并且也能 反射,Object的属性和Field属性. 今天主要记录的是一个需求:Visualforce Page或 ...
- 力扣 - 347. 前 K 个高频元素
目录 题目 思路1(哈希表与排序) 代码 复杂度分析 思路2(建堆) 代码 复杂度分析 题目 347. 前 K 个高频元素 思路1(哈希表与排序) 先用哈希表记录所有的值出现的次数 然后将按照出现的次 ...
- 3,turicreate入门 - 优化回归模型,使得预测更准确
turicreate入门系列文章目录 1,turicreate入门 - jupyter & turicreate安装 2,turicreate入门 - 一个简单的回归模型 3,turicrea ...
- Python基础(七):字符串的使用(上)
什么是字符串? 字符串该如何定义呢?通俗的说:字符串就是一系列的字符. 创建字符串的3种方式 单引号创建 >>> a = 'I am a student' >>> ...