题意:自己去BZOJ上看。
但是总之询问就是要求
// 它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年
// 左>=右>中
题解:然后首先离散化一下,然后把确定的年加到线段树中,乱搞一下就过了。
但是,,,讨论太恶心了!!
详情参照代码,写得很清晰(不清晰怎么A这道题)
代码:
#include
#include
#include...
分类:
其他好文 时间:
2015-01-20 18:11:48
阅读次数:
380
题目大意:给定n个人,朋友的朋友是朋友,敌人的敌人是朋友,朋友之间组成一个团伙,求团伙数
将每个点x拆成两个:x和x+n
如果x和y是朋友,就将x和y合并
如果x和y是敌人,就将x和y+n合并,将y和x+n合并
注意敌人的朋友不一定是敌人,因此如果x和y是朋友,不能将x+n和y+n合并
#include
#include
#include
#include
#define M 1...
分类:
其他好文 时间:
2015-01-20 18:07:14
阅读次数:
302
题目大意:给定一张图,要求从第一个点出发,按照某个拓扑序遍历2~k+1的所有节点,然后到达n,求最短路径
首先将所有关键点之间的最短路用SPFA求出来 然后状压DP
令f[state][p]表示已经走过的点集为state,将要走到p点的最短路
记忆化搜索就行了- -
标准卡时过- -
#include
#include
#include
#include
#define M 20...
分类:
其他好文 时间:
2015-01-20 15:45:01
阅读次数:
147
题目大意:给定一个字符串,多次询问某一子串的循环节
首先循环次数一定是子串长度的约数
因此我们可以枚举子串长度的约数进行验证
验证时选择Hash,验证[x,y-len]和[x+len,y]这两段是否相等,O(1)即可出解
但是这样做总复杂度是O(q√n)的,会T
考虑一个优化,设某个字母在子串中出现了k次,那么循环次数一定是k的约数
因此我们取每个字母在子串中出现次数的Gcd,枚举这个...
分类:
其他好文 时间:
2015-01-20 13:48:45
阅读次数:
234
题目大意:给定一个序列,求一个最长的子串,使最大值与最小值之差不超过k
从左到右枚举右端点,利用单调队列维护当前区间中的最大值和最小值
如果某一时刻当前区间的最大值和最小值之差超过了k,就向右调整左端点直到差小于等于k为止
时间复杂度O(n)
#include
#include
#include
#include
#define M 3003003
using namespace ...
分类:
其他好文 时间:
2015-01-20 13:47:34
阅读次数:
190
题目大意:给定P,B,N,求最小的L使B^L≡N (mod P) (P是质数)
裸的BSGS。。。 练练手吧- -
#include
#include
#include
#include
#include
#define M 100100
#define INF 0x3f3f3f3f
using namespace std;
typedef pair abcd;
long long ...
分类:
其他好文 时间:
2015-01-20 12:07:39
阅读次数:
204
题目大意:给定一个黑白两色的矩阵,求最大的黑白相间的子正方形和子矩阵
将奇数位置的点反色,然后就是求纯色的最大子正方形和子矩阵
将矩阵一层层剖分,每层上方是一段类似于▆▃▇▂▉的东西,用单调栈跑出每个点向左向右能拓展到的最大距离,更新答案即可
#include
#include
#include
#include
#define M 2020
using namespace std;...
分类:
其他好文 时间:
2015-01-20 10:33:03
阅读次数:
210
题目大意:给定一个序列,m次给出一段区间的和,求这个序列是否合法
第一眼看还以为是差分约束- -
[x,y]区间内和为z等价于sum[y]-sum[x-1]=z
用并查集来维护这个关系即可
#include
#include
#include
#include
#define M 110
using namespace std;
int n,m;
int fa[M],f[M];
i...
分类:
其他好文 时间:
2015-01-20 09:00:10
阅读次数:
204
比较基础的斜率优化DP详见以下2篇博客http://www.cnblogs.com/proverbs/archive/2012/10/06/2713109.htmlhttp://blog.163.com/myq_952/blog/static/863906320112711750378/主要总结斜率...
分类:
其他好文 时间:
2015-01-19 23:20:32
阅读次数:
276
题目大意:给定一个矩阵,多次改变某个点的权值,设定某个子矩阵内的所有点可用/禁用,求滑雪的最大长度
再也不敢不看数据范围就做题了233333
#include
#include
#include
#include
#define M 710
using namespace std;
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0}...
分类:
其他好文 时间:
2015-01-19 22:49:09
阅读次数:
192