最小表示法+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. 2015 ACM/ICPC Asia Regional Shanghai Online

    1001 Puzzled Elena 1002 Antonidas 1003 Typewriter 1004 Count the Grid 1005 Code Formatting 1006 Ther ...

  2. linux下ClamAV使用

    第一步:Clamav下载http://www.clamav.net/downloads#yuminstall wget –y第二步:创建clamav用户和组groupaddclamav   (创建cl ...

  3. Ext 下拉框联动第一次显示不正常的问题

    做下拉框联动,异步加载数据,第一次显示时数据不准确,不要在combo_2的下拉框直接绑定store,在combo_1的改变事件里调用下面的方法 function GetAllCustomerBrand ...

  4. FTP、TFTP

      FTP 文件传送协议  (File Transfer Protocol) FTP是因特网上使用得最广泛的文件传送协议. 文件传送协议 FTP (File Transfer Protocol) 是因 ...

  5. 清除浮动clearfix

    css用clearfix清除浮动 更多2013/11/4 来源:css学习浏览量:11901 学习标签: css clearfix 本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟 ...

  6. iosiOSlabel基本使用以及文字自适应

    (如果需要的不是使用的属性值如换行形式,可以把对应的属性在程序中书写然后按"command"+鼠标左键点击就可以查看所有属性值) 一label基本设置 self.view.back ...

  7. 解题的小问题(C++)

    1.判断一个数是否为整数  if(m==(int)m) 2.#include <bits/stdc++.h>using namespace std;int main(){    int n ...

  8. python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import ...

  9. 如何使用SecureCRT连接ubuntu

    1. 首先要明白什么是ssh? 可以把ssh看做是telnet的加强版,telnet的密码和信息都是不加密的,而ssh则加密. .2. 开启ubuntu上的ssh功能 先安装,安装后就自动开启了. s ...

  10. hdu_5690_All X(找循环节)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5690 题意: Problem Description F(x, m)F(x,m) 代表一个全是由数字x ...