题目链接给一些线段, 每个线段有一个值, 并且覆盖一些点, 求每个点被覆盖次数不超过k时, 可以取得的最大值。首先将点离散化, 然后连边, i向i+1连一条容量为k, 费用为0的边。 对于每条线段, 起点向终点连一条容量为1, 费用为-val的边, 然后跑费用流就好。 1 #include 2...
分类:
其他好文 时间:
2015-12-30 21:51:02
阅读次数:
212
第一次接触这种神奇的数据结构,感觉不错。有学了个好东西,也不难。他主要应该是针对于数据统计的,例如本题的第k大的数。算法的主要思想是 先对给定的数离散化,然后在线段树中保存数字出现的次数(即叶子节点会存该节点所对应的数字出现的次数,非叶结点则保存子节点的数字之和)(这就与我们普通的线段树不同了).....
分类:
其他好文 时间:
2015-12-29 14:20:38
阅读次数:
154
Problem 2216 The Longest StraightAccept: 7Submit: 14 Time Limit: 1000 mSecMemory Limit : 32768 KBProblem DescriptionZB is playing a card game where th...
分类:
其他好文 时间:
2015-12-27 21:44:15
阅读次数:
583
O(NK)暴力搞出所有子串的哈希值, 然后就对哈希值离散化建权值线段树, 就是主席树的经典做法了.总时间复杂度O(NK+(N+Q)logN)--------------------------------------------------------------------------#inclu...
分类:
其他好文 时间:
2015-12-20 11:37:20
阅读次数:
232
题目链接给一些询问,每个询问给出区间[L, R] , 求这段区间的逆序数。先分块排序, 然后对于每次更改, 如果是更改L, 那么应该查询区间内比他小的数的个数, 如果更改R, 查区间内比他大的数的个数。记得离散化。 1 #include 2 using namespace std; 3 #de...
分类:
其他好文 时间:
2015-12-18 18:02:55
阅读次数:
196
线段树+离散化+扫描线AC之后,又认真读了一遍题目,好文章。#include#include#includeusing namespace std;const int maxn=100000+10;int n;long long W,H;long long x[maxn],y[maxn],v[max...
题意是给你一个工人挤奶的时间, 然后让你求出最长连续工作时间和最长连续不工作时间。。离散化后直接扫一遍即可:/* ID: m1500293 LANG: C++ PROG: milk2*/#include #include #include using namespace std...
分类:
其他好文 时间:
2015-12-17 22:15:20
阅读次数:
240
矩形面积并,离散化+线段树C++ AC,G++ WA,但是数组开大点,G++也AC,不知道为什么#include#include#include#include#includeusing namespace std;const int maxn=2100;struct Seg{ double ...
分类:
其他好文 时间:
2015-12-17 20:48:39
阅读次数:
198
论文http://ijcai.org/Past%20Proceedings/IJCAI-93-VOL2/PDF/022.pdfMDL http://arxiv.org/pdf/math/0406077v1.pdf例子http://www.clear-lines.com/blog/post/Discr...
分类:
其他好文 时间:
2015-12-17 18:56:48
阅读次数:
511
由于10^9很大,所以先离散化一下,把给你的这一段数哈希 时间复杂度O(nlogn)然后就是分块莫队 已知[L,R],由于事先的离散化,可以在O(1)的的时间更新[l+1,r],[l,r+1],[l-1,r],[l,r-1]时间复杂度O(n*sqrt(n));代码如下,速度并不是很快(我比较喜欢手动...
分类:
编程语言 时间:
2015-12-15 00:43:41
阅读次数:
224