大致题意:
见:http://bbezxcy.iteye.com/blog/1439384
大致思路:
最小表示法果然快啊!!从7000多ms优化到900ms,膜拜Orz。
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int inf=1<<30;
const int nMax =800000;
char sss[nMax];
int num[nMax];
int minexp(int *s,int x) {
int i=0,j=1,k=0,t;
while(i<x&&j<x&&k<x) {
t=s[ (i+k)%x ]-s[ (j+k)%x ];
if(t==0) k++;
else {
if(t>0) i+=k+1;
else j+=k+1;
if(i==j) j++;
k=0;
}
}
return i<j?i:j;
}
int main(){
int i,j,len,a,b,n;
while(scanf("%s",sss)!=EOF){
len=strlen(sss);
for(i=0;i<len-1;i++){
if(sss[i]<=sss[i+1]){
num[i]=sss[i+1]-sss[i];
}
else{
num[i]=8-(sss[i]-sss[i+1]);
}
}
if(sss[len-1]<=sss[0]){
num[len-1]=sss[0]-sss[len-1];
}
else{
num[len-1]=8-(sss[len-1]-sss[0]);
}
n=len;
int pos1=minexp(num,n);
for(i=pos1;i<len;i++){
printf("%d",num[i]);
}
for(i=0;i<pos1;i++){
printf("%d",num[i]);
}printf("\n");
}
return 0;
}
分享到:
相关推荐
字符串最小表示法PPT
字符串处理- 最大最小表示法.rar
字符串编辑,从键盘输入一个字符串(长度个字符),并以字符’.’结束。 例如:’This is a book.’ 现对该字符串进行编辑,编辑功能有: D:删除一个字符,命令的方式为: D(空格)a 其中a为被删除的字符;...
最小表示法 ioi2003 周源
本文实例讲述了javascript实现的字符串与十六进制表示字符串相互转换方法。分享给大家供大家参考。具体如下: 之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6...
功能说明 字符串处理通用程序 ...AL:保存主串字符 BX:子串下标 AH:保存子串字符 DI:存储下标 标记说明: TEXT:主串 STR:子串 PEPL:替换串 COUNT:计数单元 BUFFER:缓冲区 1AH:结束标记 […]:表示可选项
最小表示法在字符串循环同构问题中的应用PPT学习教案.pptx
输入:首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。 输出:按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),...
【问题描述】编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中. 编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的...
将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一...
最小表示法,算法不常用,不过蛮经典.(csdn说字数要超过20,充一下数)。
那么一段长度为N的字符串,按照存储的ASCII码可以表示为一串如下的字符串(不包含[]) "x .. x][x .. x y x .. x][x .. x", 其中 s,e表示当前正在分析的一段子串(0, 下标e-s = 期望的分割长度cut_size) ^ ^ ^ ^ ^ 0...
周源经典最小表示解释,我目前为止看到最好的讲解最小表示法的文档
算法合集之浅析最小表示法思想在字符串循环同构问题中的应用PPT学习教案.pptx
几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...
(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数。 2. 销售员业绩管理程序 主要用结构体数组实现,用结构体表示每项记录,包含数据为:编号、姓名、销售产品名、产品单价、...
Mid Mid(string,start,length) 从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 Left Left(string,length) 从string字符串的左边取得length长度...
从键盘接受一个数字,列出... 2、然后将传入的数字转换成字符串,并且求出字符串的长度, 3、根据求出的的字符串长度,调用pow方法,计算出传入数字的最高位位权值 4、通过循环对传入数字取余操作,打印输出
华为机考2017:字符串解压缩算法,通过率100%