Problem 1057: Hkhv的水题之二

Time Limits:  1000 MS   Memory Limits:  65536 KB

64-bit interger IO format:  %lld   Java class name:  Main

Description

杨神喜欢字符串,于是他写程序随机生成了n个长度不大于100的字符串。但是他认为这里面有一些字符串是一样的。比如,abcd,bcda,cdab,dabc这4个他认为就是一样的.
因此,杨神想知道,这些随机生成的字符串有几个是不同的,并且要输出这些字符串。杨神还有强迫症,输出的时候要按字典序从小到大排,字符串也要是最小的。
比如cdba要输出acdb.

Input

测试数据有多组。第一行输入n ( 1 <= n <= 10000) 接下来n行输入只有小写字母组成的字符串

Output

第一行为多少个字符串是不同的,接下来输出这些字符串,并且按字典序从小到大排。

Sample Input

5
asdfadf
abcd
bcda
cdab
dabc

Output for Sample Input

2
abcd
adfasdf

一开场发现这道题做过类似的,大水题,一提交,超时,关掉同步,WA,然后就开始无限WA了……弄了很久想不明白,问了学长发现是自己以前学这个的时候看的模版是错误的,最杯具的是这个模版一直用到这个比赛之前做过的题都是可以AC的……还好这次数据够强WA了……之后去学了下正确的写法,有空把会以前的题解代码都改成正确的……希望不会有人再被误导了

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<stack>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
#define INF 0x3f3f3f3f
#define MM(x,y) memset(x,y,sizeof(x))
typedef pair<int,int> pii;
typedef long long LL;
const double PI=acos(-1.0);
string minp(string s)
{
int i=0,j=1,k=0,len=s.size(),t;
while (i<len&&j<len&&k<len)
{
t=s[(i+k)%len]-s[(j+k)%len];
if(!t)
k++;
else
{
if(t>0)
i+=k+1;
else
j+=k+1;
k=0;
if(i==j)
j++;
}
}
s+=s;
return s.substr(min(i,j),len);
}
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(0);
string s;
int n,i,j;
set<string>pos;
set<string>::iterator it;
while (cin>>n)
{
pos.clear();
for (i=0; i<n; i++)
{
cin>>s;
pos.insert(minp(s));
}
cout<<pos.size()<<endl;
for (it=pos.begin(); it!=pos.end(); it++)
cout<<*it<<endl;
}
return 0;
}

暑假训练Round1——G: Hkhv的水题之二(字符串的最小表示)的更多相关文章

  1. <hdu - 3999> The order of a Tree 水题 之 二叉搜索的数的先序输出

    这里是杭电hdu上的链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999  Problem Description: As we know,the sha ...

  2. 水题系列二:PhoneNumbers

    问题描述: Phonenumbers 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一 个容易记 住的 单词或 者短语 .例如 ,你 需要给 滑铁卢 大学打 电话时 ,可 以 ...

  3. 暑假训练round 3 题解

    今天做题运气出奇的好,除了几处小错误调试之后忘记改掉了……最后还AK了……虽然题目不难,学长也说是福利局,但是对个人的鼓励作用还是挺大的……至此暑假训练就结束了,也算没有遗憾……. 题解如下: Pro ...

  4. 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

    算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB      问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...

  5. hdu 2044:一只小蜜蜂...(水题,斐波那契数列)

    一只小蜜蜂... Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepte ...

  6. Atcoder 水题选做

    为什么是水题选做呢?因为我只会水题啊 ( 为什么是$Atcoder$呢?因为暑假学长来讲课的时候讲了三件事:不要用洛谷,不要用dev-c++,不要用单步调试.$bzoj$太难了,$Topcoder$整 ...

  7. poj 1007:DNA Sorting(水题,字符串逆序数排序)

    DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 80832   Accepted: 32533 Des ...

  8. poj 1002:487-3279(水题,提高题 / hash)

    487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 236746   Accepted: 41288 Descr ...

  9. POJ2485Highways(prime 水题)

    Highways Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26516   Accepted: 12136 Descri ...

随机推荐

  1. IT之家学院:使用CMD命令行满速下载百度云

    转自:https://www.toutiao.com/a6545305189685920259/?tt_from=android_share&utm_campaign=client_share ...

  2. js数组去重方法包括Es6(方法有很多,但是需要考虑兼容性和数据类型场景)

    1.Es6提供的方法 <script type="text/javascript"> //ES6里新添加了两个方法,set(set是一种新的数据结构,它可以接收一个数组 ...

  3. [NOI2010]海拔——最小割+对偶图

    题目链接 SOLUTION 想一下最优情况下肯定让平路或下坡尽量多,于是不难想到这样构图:包括左上角的一部分全部为\(0\),包括右下角的一部分全部为\(1\),于是现在问题转化为求那个分界线是什么. ...

  4. spring中常用的注解

    使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...

  5. Bootstrap历练实例:响应式导航栏

    响应式的导航栏 为了给导航栏添加响应式特性,您要折叠的内容必须包裹在带有 classes .collapse..navbar-collapse 的 <div> 中.折叠起来的导航栏实际上是 ...

  6. ios runloop学习

    今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢.当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运 ...

  7. 【状态压缩 meet in middle】poj3139Balancing the Scale

    数组溢出真是可怕的事情 Description You are given a strange scale (see the figure below), and you are wondering ...

  8. Git学习——版本切换

    版本回退 回退到前面几个版本的命令如下: git reset --hard HEAD^ //回退到前一个版本 git reset --hard HEAD^^ //回退到前前一个版本 git reset ...

  9. Ubuntu中安装配置 JDK与apache

    一,前期准备: 1.下载apach网址:https://tomcat.apache.org/download-90.cgi 3.下载:jdk网址:http://www.oracle.com/techn ...

  10. Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目

    rsync的企业工作场景说明 1)定时备份 1.1生产场景集群架构服务器备份方案项目 借助cron+rsync把所有客户服务器数据同步到备份服务器 2)实时复制 本地数据传输模式(local-only ...