hdu 2609(字符串最小表示法)
来源:互联网 发布:java教学视频高清 编辑:程序博客网 时间:2024/06/05 15:39
点击打开链接
题意:
有长知识了,字符串最小表示法。。。
看2003国家集训队周源的论文。。。。
#include"stdio.h"#include"string.h"#include"algorithm"using namespace std;#define N 10005struct node{char ss[101];}s[N];bool cmp(node a,node b){return strcmp(a.ss,b.ss)<0;}int minnum(char *s,int l){int i,j,k,t;i=k=0;j=1;while(i<l&&j<l&&k<l){t=(s[(i+k)%l]-s[(j+k)%l]);if(t==0)k++;else{if(t<0)i=i+k+1;else j=j+k+1;if(j==i)j++;k=0;}}return i<j?i:j;}int main(){int n;int i,j;char ss[101];while(scanf("%d",&n)!=-1){getchar();for(i=0;i<n;i++){gets(ss);int l=strlen(ss);int f=minnum(ss,l);int k=0;for(j=f;j<l;j++)s[i].ss[k++]=ss[j];for(j=0;j<f;j++)s[i].ss[k++]=ss[j];s[i].ss[k]=0;}sort(s,s+n,cmp);int ans=1;for(i=1;i<n;i++){if(strcmp(s[i].ss,s[i-1].ss)!=0)ans++;}printf("%d\n",ans);}return 0;}
- hdu 2609(字符串最小表示法)
- hdu 2609 How many(字符串的最小表示法)
- HDU 2609 How many(字符串同构,最小表示法)
- 【字符串最小表示】HDU 2609
- HDU 2609 How Many [最小表示法] [字符串处理]
- HDU 4162 Shape Number(字符串,最小表示法)
- HDU——2609How many(字符串的最小表示法+substr)
- 【字符串最小表示】HDU 3374
- 字符串最小表示法
- 字符串最小表示法
- hdu 3374 String Problem(字符串最小最大表示法+kmp)
- hdu 2609 How many(最小表示法)
- hdu 2609 How many (最小表示法+map)
- HDU 2609 How many(最小表示法)
- HDU 2609 How many (最小表示法)
- HDU 2609 How many(最小表示法)
- hdu 2609 How many(最小表示法)
- [最小表示法] hdu 2609 How many
- 飞秋教程(飞秋应用管理器)
- Java 动态代理 (JDK自带代理)
- codeforces 132C Logo Turtle--- dp dfs
- hadoop 权限控制
- 用JavaScript隐藏控件的方法
- hdu 2609(字符串最小表示法)
- pppd
- Solr单节点索引和NRT源码分析
- 「Linux」davinci DMA
- 关于51地图中循环根据经纬度获取地理位置只显示一条数据的问题
- SMARTFORMS打印后转存为PDF文件相关问题
- 【飞秋教程】文件断点续传
- jquery 双向选择器之改进版
- loner_li 机试题 由用户输入一个字符串,使用foreach循环遍历出此字符串中有多个字母,多少个数字,多少个标点