2012年4月6日

HDU 4162 Shape Number(最小表示法)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4162大意:原串通过相邻的数字相减得到的差或8减该差得到一个新串,然后输出新串(看成环)中字典序最小的那个串。。。。这里用到最小表示法:其维护i和j指针,分别指向(共有L(串长)个串)其中2个串(其实只有一个串,拆成2个串好理解点)的串头(注意当比较这两个串的大小的时候i和j都不动,任然指串头,而这个串头是指以该位置开始而得到的串的串头),他是通过k(因为如果不引入k,而i和j是移动的,比较完成后i和j回不了串头)来比较这两个串,即i+k和j+k就是比较这两个串时的指针。。。。。。。然后,当不相等的时候 阅读全文

posted @ 2012-04-06 16:23 [S*I]SImMon_WCG______* 阅读(677) 评论(0) 推荐(0) 编辑

HDU 3374 String Problem(最小(大)表示 + KMP)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=3374他左移的步数刚好是最小(大)表示返回的值+1,然后就是一个关键的结论:同构串个数 == 最小循环节的总个数。。。。#include <iostream>#include <cstring>using namespace std;char p[1000010];int nxt[1000010];//最小表示int Minp(char *c, int l){ int i = 0, j = 1, k = 0, t; while (i < l && j < 阅读全文

posted @ 2012-04-06 15:15 [S*I]SImMon_WCG______* 阅读(155) 评论(0) 推荐(0) 编辑

导航