最小表示法+Map或者字典树,最小表示法找了个模板,还没学习呢...

#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<map>
#include<algorithm>
using namespace std; map<string,int>m;
int n;
char s[][];
char t[]; int getminsub(char *a)
{
int i=,j=,len=strlen(a),k=; //取两个同构的字符串一个从下标0开始,一个从下标1开始
while(i<len&&j<len&&k<len) //这里并没有将字符串复制一份添加到后面
{
if(k==len) break; //说明找到了a的最小表示
if(i==j) j++;
int ni=i+k,nj = j+k;
if(ni>=len) ni-=len; //就是回到字符串的开始去
if(nj>=len) nj-=len;
if(a[ni]>a[nj])
{
i+=k+;
k=;
}
else if(a[ni]<a[nj])
{
j+=k+;
k=;
}
else k++;
}
return i; //返回从第i个字符开始时a的最小表示
} int main()
{
while(~scanf("%d",&n))
{
m.clear();
int ans=;
for(int i=;i<=n;i++) scanf("%s",s[i]);
for(int i=;i<=n;i++)
{
int st=getminsub(s[i]);
int len=strlen(s[i]);
int x=;
for(int j=st;j<len;j++) t[x]=s[i][j],x++;
for(int j=;j<st;j++) t[x]=s[i][j],x++;
t[x]=; if(m[t]==)
{
m[t]=;
ans++;
}
}
printf("%d\n",ans);
}
return ;
}

HDU 2609 How many的更多相关文章

  1. HDU 2609 最小表示法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609 题意:给定n个循环链[串],问有多少个本质不同的链[串](如果一个循环链可以通过找一个起点使得和 ...

  2. HDU 2609 How many(最小表示+set)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609 题目大意: 题目大意有n个有01组成的字符串,每个字符串都代表一个项链,那么该字符串就是一个环状 ...

  3. How many - HDU 2609 (trie+最小表示)

    题目大意:有 N 个手链,每个手链的最大长度不超过100,求出来最多有多少个不同的手链.   分析:因为手链是可以转动的,所以只要两个手链通过转动达到相同,那么也被认为是一种手链,然而如果每次都循环比 ...

  4. hdu 2609 How many 最小表示法

    How many Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  5. hdu 2609 How many(最小表示法)

    Problem Description Give you n ( n < 10000) necklaces ,the length of necklace will not large than ...

  6. hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/

    还需要再消化一下这个算法.. 今天没有时间了,, 六级过了 就有大把时间 快活啊!#include<iostream> #include<cstdio> #include< ...

  7. KUANGBIN带你飞

    KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题    //201 ...

  8. Kuangbin 带你飞 KMP扩展KMP Manacher

    首先是几份模版 KMP void kmp_pre(char x[],int m,int fail[]) { int i,j; j = fail[] = -; i = ; while (i < m ...

  9. [kuangbin带你飞]专题1-23题目清单总结

    [kuangbin带你飞]专题1-23 专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 Fli ...

随机推荐

  1. NOTE07152246 JAVA 发展及JDK配置

    一.软件工程师体系: 操作系统(Windows/Linux/Unix) - 数据库系统 - 中间件(WebSphere/Tomcat) - JAVA EE 1.操作系统为用户构建了一个平台.此平台上可 ...

  2. JavaScript获取浏览器信息的方法

    Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  3. PureLayout

    PureLayout 是 iOS & OS X Auto Layout 的终极 API——非常简单,又非常强大.PureLayout 通过一个全面的Auto Layout API 扩展了 UI ...

  4. Latex 中插入图片no bounding box 解决方案

    在windows下,用latex插入格式为jpg,png等图片会出现no bounding box 的编译错误,此时有两个解决办法: 1.将图片转换为eps格式的图片 \usepackage{grap ...

  5. apicloud教程3 (转载)

    本帖最后由 中山赢友网络科技有限公司 于 2015-10-26 16:44 编辑 继<APICloud之小白图解教程系列(一):认识APICloud><APICloud之小白图解教程 ...

  6. 找回XP中的搜索助理

    平台:GHOST版XP 问题:按下F3键后,打开的搜索界面没有搜索助理,比较难看.打开C:\WINDOWS\srchasst目录,发现该目录下空空如也,显然搜索助理文件已经被删除了. 解决: 1.准备 ...

  7. POJ 2536 Gopher II

    二分图的最大匹配 地鼠内部和地鼠洞内部都是没有边相连的,那么就可以看成一个二分图.地鼠如果可以跑到那个地鼠洞,就连一条边,然后跑二分图的最大匹配,最后地鼠的数量减去最大匹配数就是答案. #includ ...

  8. WIN2003 设置 OPENVPN 服务端

    服务器端 安装openvpn 在这里http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I004-i686.exe ...

  9. Chapter 1 First Sight——29

    I was anxious not to be late for class on my first day. 在我第一天上学的时候我非常焦虑我会上课迟到. One of my new acquain ...

  10. 只能在执行 Render() 的过程中调用 RegisterForEventValidation

    当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示.有两种方法可以解决以上问题: 1.修改web ...