单点更新就好了,简单题一开始以为可以不连续,想来想去都觉得哪里不对劲,感觉无法解决,囧。。。。#define max(a,b) ((a)>(b)?(a):(b)) 要注意加括号,因为没注意这个细节错了蛮久线段树的三个域lm[rt]:从左开始最长的连续递增子序列rm[rt]:以右边界结尾的最长的。。。。mx[rt]:管辖区间内最长的。。。。。如果num[mid]<num[mid+1],可以对区间上的域进行合并还没那个hotel难View Code #include<cstdio>#include<cstring>#include<algorithm> Read More
其实也算不上模板,代码很简单http://acmpj.zstu.edu.cn/JudgeOnline/showproblem?problem_id=1086上面这题可以理解什么是最小表示法方法在这里http://www.cnblogs.com/ACAC/archive/2010/05/23/1742349.html字符串最小表示求字符串的循环最小表示:上面说的两个字符串同构的,并没有直接先求出Min(s),而是通过指针移动,当某次匹配串长时,那个位置就是Min(s)。而这里的问题就是:不是给定两个串,而是给出一个串,求它的Min(s),eg:Min(“babba”) = 4。那么由于这里并非要 Read More