这道题对更加深入地理解next数组有很大帮助。
基本思路:
字符编号从0开始,那么if(i%(i-next[i])==0),则i前面的串为一个轮回串,其中轮回子串出现i/(i-next[i])次。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1358...
分类:
其他好文 时间:
2014-08-06 15:01:01
阅读次数:
190
题目:实现复杂链表的复制。在复杂链表中,每个结点除了有一个next指针指向下一个结点之外,还有一个sibling指向链表中的任意结点或者NULL。
复杂链表示意图:
思路:
可以分成三步:
1.根据原始链表的每个结点N创建对应的N',并将N'放到N的后面
2.设置复制出来的结点的sibling指针假设P为原始链表的某结点,则复制链表的对应结点p'->sibli...
分类:
其他好文 时间:
2014-08-06 14:58:22
阅读次数:
233
这题跟HDU 1358 Period (KMP)
差不多,稍微修改代码就行了。
关于KMP的更多知识,请关注从头到尾彻底理解KMP(2014年8月4日版)
。
#include
#include
int n,next[1000000];
char p[1000000];
void getnext()
{
int k=0,j=1;
next[0]=-1;next[1]=0;
...
分类:
其他好文 时间:
2014-08-06 14:48:01
阅读次数:
204
题意 电脑键盘的home键和end键坏了 会在你不注意时自动按下
给你一个输入序列 '['代表home键 ']'代表end键 要求输出屏幕上对应的输出
用链表保存每个位置的字符c和下一个位置的编号next 最后一个字符的next为0
并用cur表示光标的移动...
分类:
其他好文 时间:
2014-08-06 12:02:11
阅读次数:
327
SDUT2929_人活着系列之芳姐和芳姐的猪
解题报告
求出所有最短路,枚举一个猪圈求出到有猪的猪圈的总路程最短。
#include
#include
#include
#include
#include
#define inf 99999999
using namespace std;
struct E
{
int v,w,next;
} edge[5000...
分类:
其他好文 时间:
2014-08-06 01:55:10
阅读次数:
353
题目:复制一个复杂链表,所谓复杂链表指的是每个节点含有两个指针,一个指向单链表的下一个结点,一个指向单链表中的任意某个结点,或者该指针为空。
为了方便起见,我们将待复制的链表称为原型链表,将复制后的新链表称为复制链表,将指向下一个结点的指针定义为next指针,指向其他位置的指针定义为any指针。《剑指offer》上给出了三种解决方法:(1)常规法;(2)空间换时间法;(3)紧随复制法。书上并给出了第三种方法的实现代码。这里我根据书上的提示,给出第二种方法的代码。...
分类:
其他好文 时间:
2014-08-05 22:45:00
阅读次数:
346
Problem Description:
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
If such arrangement is not possible, it must rea...
分类:
其他好文 时间:
2014-08-05 22:40:40
阅读次数:
241
KMP查找整数数列,不是查找字符串。
原理是一样的,不过把字符串转换为数列,其他基本上是一样的。
#include
#include
const int MAX_N = 1000001;
const int MAX_M = 10001;
int strN[MAX_N], strM[MAX_M], next[MAX_M], N, M;
void getNext()
{
mems...
分类:
其他好文 时间:
2014-08-05 22:37:10
阅读次数:
194
引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generatio...
分类:
其他好文 时间:
2014-08-05 22:06:50
阅读次数:
348
typedef struct ListNode{
int data;
struct ListNode *next;
}ListNode;
//递归一
ListNode *ReverseList (ListNode *pHead, ListNode *nHead = NULL)
{
//每次取下第一个节点头插法创建新链表
//nHead为反转后链表的头节点
if(pHead == NUL...
分类:
其他好文 时间:
2014-08-05 19:36:50
阅读次数:
241