《算法竞赛入门经典2ndEdition 》例题3-6 环状序列(Circular Sequence, Uva1584)
来源:互联网 发布:js case when 多条件 编辑:程序博客网 时间:2024/04/20 07:16
WA了很多次,最后发现是因为把s,min数组定义在了for循环内,好吧,终于AC了。
#include <cstdio>#include <cstring>using namespace std;const int maxn = 100;char s[maxn + 10], min[maxn + 10];int main(){ //freopen("New Text Document.txt","r",stdin); //freopen("Output.txt","w",stdout); int t; scanf("%d", &t); for(int i = 1; i <= t; i++) { scanf("%s", s); int len = strlen(s); min[len] = '\0'; for(int j = 0; j < len; j++) { s[j+len] = s[j]; min[j] = s[j];//min±£´æ×ÖµäÐò×îСµÄ } for(int j = 1; j < len; j++) for(int k = j; k < j+len; k++) { if(s[k] < min[k-j]) { for(int m = k; m < j+len; m++) min[m-j] = s[m]; break; } else if(s[k] > min[k-j]) break; else continue; } printf("%s\n", min); } //getchar();getchar(); return 0;}
我在处理环状时,处理方式是再复制了一份,放到这个数组之后,下面这个是刘汝佳标程,里面是用了取mod操作来处理环状,感觉的确很巧妙。
// UVa1584(LA3225) Circular Sequence// Rujia Liu#include<stdio.h>#include<string.h>#define maxn 105// 环状串s的表示法p是否比表示法q的字典序小int less(const char* s, int p, int q) { int n = strlen(s); for(int i = 0; i < n; i++) if(s[(p+i)%n] != s[(q+i)%n]) return s[(p+i)%n] < s[(q+i)%n]; return 0; // 相等}int main() { int T; char s[maxn]; scanf("%d", &T); while(T--) { scanf("%s", s); int ans = 0; int n = strlen(s); for(int i = 1; i < n; i++) if(less(s, i, ans)) ans = i; for(int i = 0; i < n; i++) putchar(s[(i+ans)%n]); putchar('\n'); } return 0;}
1 0
- 《算法竞赛入门经典2ndEdition 》例题3-6 环状序列(Circular Sequence, Uva1584)
- UVa1584 环状序列 (Circular Sequence)
- Uva1584-环状序列-Circular Sequence-字典序
- 例题3-6 环状序列 UVa1584
- 算法之路二:刘汝佳算法竞赛入门经典 3.10环状序列 UVa1584
- 算法竞赛入门经典(第二版)-刘汝佳-第三章-例题3-5 环状序列
- 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
- UVa1584 Circular Sequence(环状序列) (java版本)
- 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
- 《算法竞赛入门经典2ndEdition 》例题3-3 回文词(Palindromes, Uva401)
- 《算法竞赛入门经典2ndEdition 》例题3-2 WERTYU(WERTYU, Uva10082)
- 《算法竞赛入门经典2ndEdition 》例题5-6 团体队列(Team Queue, Uva540)
- 《算法竞赛入门经典2ndEdition 》例题3-1 TeX中的引号(Tex Quotes, Uva 272)
- 《算法竞赛入门经典2ndEdition 》例题3-5 生成元(Digit Generator, Uva1583)
- 环状序列 算法竞赛入门经典
- 《算法竞赛入门经典2ndEdition 》习题3-7 DNA序列(DNA Consensus String, Uva1368)
- 《算法竞赛入门经典2ndEdition 》习题3-9 子序列(All in All, Uva10340)
- 《算法竞赛入门经典2ndEdition》 例题3-4 猜数字游戏的提示(Master-Mind Hints, Uva340)
- iOS笔记14
- 【Swing】paint与paintComponent的区别
- 关于java中的值传递问题
- iOS后台运行
- xcode常见报错调试【转载】
- 《算法竞赛入门经典2ndEdition 》例题3-6 环状序列(Circular Sequence, Uva1584)
- spring事务回滚
- js页面跳转
- UITableView
- Windows下使用DOS命令进入MySQL数据库
- 1035. Password (20)
- iOS笔记15
- 工业4.0时代,教育如何改革?
- 欢迎使用CSDN-markdown编辑器