题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609

题目没看懂,就想百度找下,结果 多数人就写个 最小表示法,就po代码了,看了这个博主才明白题目是啥意思:https://blog.csdn.net/piaocoder/article/details/48447193 ,每个01序列都作为一串 “项链”,能够通过循环转换而成的算同一个,比如:0110和0011算同一个,就要把所有序列转换为相同的标准:循环的同构字符串S’中字典序最小的一个。

其实只要能把 循环的同构字符串 都表示一样就可以,不一定是最小字典序。

#include <iostream>
#include <string>
#include <set>
using namespace std; int findMin(string s) {
int i = , j = ,k = ;
while (i < s.length() && j < s.length() && k < s.length()) {
int t = s[(i + k) % s.length()] - s[(j + k) % s.length()];
if (t == ) k++;
else {
if (t > )
i += k + ;
else
j += k + ;
//碰到i,j重合时,不处理后面两个指针就一直在一起了
if (i == j)
j++;
k = ;
}
}
//谁在前面,谁就是小的那个
return i > j ? j : i;
} int main() {
set<string>set;
string s;
int n;
while (cin >> n) {
cin.ignore();
while (n--) {
getline(cin, s);
if (s.empty()) continue;
int min = findMin(s);
string s1;
s1 = s.substr(min);
s1.append(s.substr(, min));
set.insert(s1);
}
cout << set.size() << endl;
set.clear();
}
}

随手练——HUD 2609 How many的更多相关文章

  1. 随手练——洛谷-P1151(枚举与暴力搜索)

    枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...

  2. SUBSTRING / CHARINDEX_函数随手练_2

    SUBSTRING / CHARINDEX_函数随手练_2环境:MSSQL 2014(AdventureWorks2008R2附加到2014中的表 Location) /* Learning SQL ...

  3. case when then 随手练_1

    CASE WHEN THEN随手练,就当做练习指法吧 --drop table tbStudent GO Create table tbStudent( studentId int identity( ...

  4. 随手练——HDU 1078 FatMouse and Cheese(记忆化搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意: 一张n*n的格子表格,每个格子里有个数,每次能够水平或竖直走k个格子,允许上下左右走,每次走的格子 ...

  5. 随手练——ZOJ 1093 Monkey and Banana(动态规划)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=93 一堆科学家研究猩猩的智商,给他M种长方体,每种N个. 然后,将一个 ...

  6. 随手练——ZOJ-1074 To the Max(最大矩阵和)

    To the Max http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1074 动态规划(O(n^3)) 获得一维数组的最大子 ...

  7. 随手练——P1141 01迷宫

    1.暴力版 本质上就是求连通块数量,那么DFS或者BFS都行,暴力跑. 写完发现题目比较特殊,m次提问,那每次都暴力搜,肯定是要跑死了. #include <iostream> #incl ...

  8. 随手练——DFS小练

    1. 单词接龙 https://www.luogu.org/problemnew/show/P1019 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头 ...

  9. 随手练——小米OJ 高弗雷勋爵

    高弗雷勋爵 题目链接:https://code.mi.com/problem/list/view?id=113 这个解法比较暴力,主要需要注意的是一颗子弹 弹死两个及以上的情况. #include & ...

随机推荐

  1. 怎么用PHP发送HTTP请求(POST请求、GET请求)?

    file_get_contents版本: 01 /** 02 * 发送post请求 03 * @param string $url 请求地址 04 * @param array $post_data ...

  2. 【8】memcached实例

    一.memcached环境搭建 1.下载后解压到D:\memcached(下载地址:memcached-win64下载地址) 2.安装到windows服务,打开cmd命令行,进入memcached目录 ...

  3. 十、获取异步线程返回值Callable

    一.简介 异步线程的实现接口Runnable是无法获得返回结果的,而另一个接口Callable可以返回结果.并通过如Future等方式来获取异步结果. 二.代码示例 import java.util. ...

  4. Windows的图形设备接口与Windows绘图

    本次学习目标 理解DC, 映像模式, 坐标系统, 窗口和视口; 学习获取绘图工具(画笔/画刷)的句柄, 设置颜色, 能定义映像模式; 会使用常用的绘图函数. 编写程序: 在屏幕上出现一个圆心沿正弦曲线 ...

  5. 使用fastjson 获取json字符串中的数组,再转化为java集合对象

    最近,使用layui做一个导出功能,尽管有插件提供导出,但是呢,由于数据中有状态是数字,例如1显示是已支付,但是导出时也希望这样显示,但是导出的还是1: lz没有找到改下这个插件的办法,只能利用服务端 ...

  6. JDBC基本操作示例

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. PHP学习笔记(一) ---- PHP简介以及基本语法

    PHP 一.PHP 简介 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点, 利于 ...

  8. C++学习笔记(5)----重载自增自减运算符

    自增运算符“++”和自减运算符“--”分别包含两个版本.即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的.因此,当我们在对这两个运算符进行重载时,就必须区分前置 ...

  9. A memory map of an object

    Phone类 package com.itheima_02; /* * 手机类: * 成员变量:品牌,价格,颜色... * 成员方法:打电话,发短信... */ public class Phone ...

  10. 网络测速 php代码

    <?php /*=====http://hi.csdn.net/yinyiniao=====*/ $fp=fopen("cs.txt","w"); for ...