hdu2609 How many

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2609

题目:

How many

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2625    Accepted Submission(s): 1135


Problem Description
Give you n ( n < 10000) necklaces ,the length of necklace will not large than 100,tell me
How many kinds of necklaces total have.(if two necklaces can equal by rotating ,we say the two necklaces are some).
For example 0110 express a necklace, you can rotate it. 0110 -> 1100 -> 1001 -> 0011->0110.
 

 

Input
The input contains multiple test cases.
Each test case include: first one integers n. (2<=n<=10000)
Next n lines follow. Each line has a equal length character string. (string only include '0','1').
 

 

Output
For each test case output a integer , how many different necklaces.
 

 

Sample Input
4 0110 1100 1001 0011 4 1010 0101 1000 0001
 

 

Sample Output
1 2
 

 

Author
yifenfei
 

 

Source
奋斗的年代
 

 

Recommend
yifenfei
 
思路:最大最小表示法+set
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <set>
 5 #include <string>
 6 using namespace std;
 7 
 8 #define MP make_pair
 9 #define PB push_back
10 typedef long long LL;
11 const double eps=1e-8;
12 const int K=1e6+7;
13 const int mod=1e9+7;
14 
15 char sb[205];
16 //ff为真表示最小,为假表示最大
17 //S串应该为原串复制两次后的字符串
18 int mx_mi_express(char *S,bool ff,int len)
19 {
20     int i=0,j=1,k;
21     while(i<len&&j<len)
22     {
23         k=0;
24         while(k<len&&S[i+k]==S[j+k]) k++;
25         if(k==len)  return i<=j?i:j;
26         if((ff&&S[i+k]>S[j+k]) || (!ff&&S[i+k]<S[j+k]))
27         {
28             if(i+k+1>j) i=i+k+1;
29             else    i=j+1;
30         }
31         else if((ff&&S[i+k]<S[j+k]) || (!ff&&S[i+k]>S[j+k]))
32         {
33             if(j+k+1>i) j=j+k+1;
34             else    j=i+1;
35         }
36     }
37     return i<=j?i:j;
38 }
39 string tmp;
40 set<string>st;
41 int main(void)
42 {
43     int t,n,len;
44     while(scanf("%d",&n)==1&&n)
45     {
46         st.clear(),tmp.clear(),len=0;
47         for(int i=1,be;i<=n;i++)
48         {
49             scanf("%s",sb);
50             if(!len)
51             {
52                 len=strlen(sb);
53                 for(int j=0;j<len;j++)
54                     tmp+='0';
55             }
56             for(int j=0;j<len;j++)
57                 sb[j+len]=sb[j];
58             be=mx_mi_express(sb,1,len);
59             for(int j=0;j<len;j++)
60                 tmp[j]=sb[j+be];
61             st.insert(tmp);
62         }
63         printf("%d\n",st.size());
64     }
65     return 0;
66 }

 

转载于:https://www.cnblogs.com/weeping/p/6670265.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

equals null报错吗_轻轻松松教你搞定Java中的==和equals

前言相信很多读者关于和equals懂了又懵&#xff0c;懵了又懂&#xff0c;如此循环&#xff0c;事实上可能是因为看到的博客文章之类的太多了&#xff0c;长篇大论&#xff0c;加上一段时间的洗礼之后就迷路了。本篇文章再一次理清楚。当然如果觉得本文太啰嗦的话&#xff0c;当…

java八股 spring + mybatis

Spring常用注解&#xff08;绝对经典&#xff09;_spring注解-CSDN博客 框架篇-02-Spring-单例bean是线程安全的吗_哔哩哔哩_bilibili 1.spring.bean 单例 线程不安全 2.AOP 项目里可以说记录用户登录日志&#xff0c;利用request去获取姓名、ip、、请求方式、url&#xff0…

python import 找不到指定模块_python模块以及导入出现ImportError: No module named ‘xxx‘问题...

python中&#xff0c;每个py文件被称之为模块&#xff0c;每个具有__init__.py文件的目录被称为包。只要模 块或者包所在的目录在sys.path中&#xff0c;就可以使用import 模块或import 包来使用 如果你要使用的模块&#xff08;py文件&#xff09;和当前模块在同一目录&#x…

服务器数据库2008怎么备份数据库文件,怎么备份SQL Server2008数据库

在使用SQL Server 2008服务器的时候&#xff0c;我们需要定时的备份数据库来防止数据的丢失&#xff0c;下面学习啦小编为大家介绍备份SQL Server 2008数据库的方法。备份SQL Server 2008数据库的方法在开始菜单中点击“SQL Server Management Studio”在弹出的界面点击连接&am…

蝙蝠为啥这么厉害?地球人整明白了没有?

来源&#xff1a;周末八点半公元一世纪的时候&#xff0c;希腊的普鲁塔克提出了一个问题&#xff1a;如果忒修斯船上的零件被逐渐替换&#xff0c;直到所有的零件都不是原来的零件&#xff0c;那么这艘船还是原来的那艘船吗&#xff1f;这就是人类历史上的忒修斯悖论&#xff0…

vant input框禁止调用手机键盘_春运不要变“泰囧”手机这些功能让回家的路更安全...

随着春节的临近&#xff0c;年味儿可以说是越来越浓了&#xff0c;比如刚刚开始的支付宝集五福活动激发了大家的参与热情&#xff0c;而每年都会上热搜的春运更是成为了我国人民过年最真实的写照。就拿小编来说&#xff0c;作为一个张家口的北漂人&#xff0c;前几天京张高铁的…

RCC 2017 Qual 1 Mail.Ru, April 2, 2017 Problem B. Painting the Wall

题意&#xff1a;给一个n*m(<100)的图&#xff0c;图中0表示台灯&#xff0c;1表示空地&#xff0c;以台灯和墙作为边界&#xff0c;问能否使用k种使得联通的线段上没有重复的颜色 分析&#xff1a;只要连续的空地不超过k个就必然存在一个解&#xff0c;可以选择如下构造&am…

math python 向上取整_Python成为专业人士笔记-各数学运算操作深度剖析

“专业人士笔记”系列目录&#xff1a;创帆云&#xff1a;Python成为专业人士笔记--强烈建议收藏&#xff01;每日持续更新&#xff01;​zhuanlan.zhihu.comPython可以执行常见的数学运算符&#xff0c;包括整数和浮点除法、乘法、取幂、加法和减法&#xff0c;而数学math模块…

css3 shapes是什么意思,如何在Web中使用CSS Shapes

布局一般都是遵循按行和列等线性原则&#xff0c;Web网站的布局到今天为止很大程度上受到这些原则的影响。虽然CSS Grid的出现让布局变得更好&#xff0c;更灵活&#xff0c;但相对于印刷媒体而言&#xff0c;Web布局总体上还是受到很好的限制&#xff0c;特别是内容流上。杂志…

C语言 · 8皇后问题

题目&#xff1a;8皇后问题 在88的棋盘上&#xff0c;放置8个皇后&#xff08;棋子&#xff09;&#xff0c;使两两之间互不攻击。所谓互不攻击是说任何两个皇后都要满足&#xff1a; &#xff08;1&#xff09;不在棋盘的同一行&#xff1b; &#xff08;2&#xff09;不在棋盘…

wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件

不少朋友在系统用久了以后&#xff0c;都会用一些软件来帮忙清理系统中没用的文件&#xff0c;其中包括一些临时文件、无用文件等。但其实在 Windows 10 中&#xff0c;系统已经内置了自动定期清理临时文件的功能了。你还不知道&#xff1f;跟着我们来学习下吧。这个功能就隐藏…

服务器系统gho系统怎么安装系统,GHOST怎么重装系统?GHO文件安装系统教程

ghost映像文件就是系统文件&#xff0c;通过gho文件我们可以就进行系统的重装。不过对于电脑小白来说&#xff0c;不知道在哪里可以下载纯净的ghost文件&#xff0c;下载完成后也不清楚如何使用gho文件安装系统。那么下面就让小编教大家使用gho文件重装系统。相关教程&#xff…

Science | 谷岩/王朗团队揭示大脑中的免疫细胞竟是记忆遗忘的“主谋”

来源&#xff1a;BioArt记忆是大脑最重要的功能之一&#xff0c;也是人类研究最多的脑功能之一。记忆随时在发生&#xff0c;而遗忘如影随形。海马体位于大脑丘脑和内侧颞叶之间&#xff0c;是负责记忆的编码和存储的一个重要脑区。在这里&#xff0c;记忆信息被编码于一些神经…

halocn标定找旋转中心_机器人工具坐标系标定原理

工业机器人使用过程中经常在机器人末端法兰面安装不同的工具来满足实际生产需求&#xff0c;为了准确控制工具运动的位置与姿态&#xff0c;需要对工具所在坐标系进行标定。对于工业机器人来说&#xff0c;基坐标 与 末端法兰面所在坐标系 之间的关系在制作机器人的时候已经设定…

codeforces 264 B. Good Sequences(dp+数学的一点思想)

题目链接&#xff1a;http://codeforces.com/problemset/problem/264/B 题意&#xff1a;给出一个严格递增的一串数字&#xff0c;求最长的相邻两个数的gcd不为1的序列长度 其实这题可以考虑一下素因数&#xff0c;将每一个数都已是分解为几个不重复的素数&#xff0c;设dp[i]为…

app离线消息推送服务器,在线消息推送和离线消息推送(3)

首先介绍一下具体的功能设计。整个系统由服务端、客户端组成。客户端包含前端(浏览器端、pyqt桌面端)和后台(用于添加要推送的消息)。因为浏览器端不容易注意到实时提醒&#xff0c;所以我将实时提醒功能放到pyqt桌面端中实现(如托盘区闪烁等醒目的方式)。浏览器端中只对消息进…

基于深层卷积网络的手写数字识别 minist_「Tensorflow」基于CNN的数字OCR识别

导读 对于人类来说&#xff0c;识别手写的数字是一件非常容易的事情。我们甚至不用思考&#xff0c;就可以看出下面的数字分别是1&#xff0c;2&#xff0c;3。那机器如何来识别数字&#xff1f;本期将使用Tensorflow搭建卷积神经网络&#xff0c;进行手写数字的识别。代码可关…

2019年5G创新深度研究报告

来源&#xff1a;中信建投从历史上看&#xff0c;每一轮科技产业创新周期均主要由通信代际升级驱动&#xff0c;历时 5-8 年。我们认为 2017-2019 年为 4G 时代的稳定成熟期&#xff0c;而进入 2020 年&#xff0c;运营商加速投入 5G 网络建设&#xff0c;科技软硬件有望在运营…

鹰眼系统原理_山东首家露天焚烧鹰眼监控系统在我镇投入使用

露天冒烟着火&#xff0c;不用人员到现场&#xff0c;电子围栏就会锁定目标&#xff0c;自动报警&#xff0c;提醒监管人员立即现场处置。日前&#xff0c;莱西市院上镇新安装建设的污染源鹰眼监控系统投入使用&#xff0c;实现了环境监控全方位、自动化。据了解&#xff0c;这…