CE玩家

人生最大的快乐,就是做别人说你做不到的事。

[贪心 线段树] LOJ#2472. 「九省联考 2018」IIIDX

从1到n枚举,逐位确定。 首先可以把关系树建出来,一个点的权值要大于等于父节点的权值。 如果没有相同数字的,第 iii 以及它子树种的点会选择 [n−sizei+1,n][n−sizei+1,n][n-size_i+1,n] 这个区间里的数,选完后把这个区间删去,继续考虑 i+1i+1i+1 ...

2018-04-07 21:29:41

阅读数:166

评论数:0

[线段树 博弈] 一道博弈题

障碍点数和询问点数都是1e5 坐标范围为1e9(实际数据既然有大于1e9的) 一个点的下方或左边存在必败点,则为必胜点,否则为必败点 同一行的障碍会把这一行分成很多段,段与段之间是互不影响的。 考虑同一段的点,若其中一个点为必败点,则之后的点一定是必胜点,也就是说要找到第一个必败点 扫...

2018-03-15 10:41:14

阅读数:85

评论数:0

[回文串 线段树] Codeforces Gym100032 ICL Cup 2012 K. Subpalindromes

题意是求一个区间里回文串的个数(出现位置不同的回文串算不同) 用马拉车算出以每个点为中心的最长回文串长度 考虑点 iii,iii点到以它为中点的最长的回文串的端点长度为 xxx 那么它对一个询问的贡献是 min{i−L,R−i,x}min{i−L,R−i,x}\min\{i-L,R-i,x\...

2018-03-11 19:14:16

阅读数:155

评论数:1

[主席树优化建图] LOJ#546. 「LibreOJ β Round #7」网格图

最简单的思路是离散化后 O(k2)O(k2)O(k^2) 搞 然而对于横着的朝向,极长的横着相连的格子的答案是相同的,竖着的同理 那么把极长的相连的格子也缩起来,用主席树优化建图,就可以 O(klogk)O(klog⁡k)O(k\log k) 最短路了 #include &l...

2018-02-25 21:17:16

阅读数:145

评论数:0

[dfs序 线段树] LOJ#6276. 果树

考虑相同颜色的两种节点,这两个节点会把树分成三部分(左、中、右),左部分的点不能和右部分的点组成一种方案 枚举每一个点,只要求出有多少个点能和它组成合法点对就行了 枚举每一对颜色相同的节点,在dfs序上搞一搞就行了 #include #include #include #include...

2018-02-03 16:34:53

阅读数:153

评论数:0

[dfs序 主席树] HackerRank University CodeSprint 3. Simple Tree Counting

Hillan大佬神奇的idea 求出树的dfs序,只要能处理加边和删边操作就行了 令加入的边为 (x,y)" role="presentation">(x,y)(x,y)(x,y),不妨设 x" role="presentation&qu...

2018-01-26 16:08:53

阅读数:164

评论数:0

[分治线段树 & 线性基] BZOJ4184: shallot

明显的分支线段树加线性基 我刚开始每个节点都开了个线性基,内存是满的 O(nlog⁡m)" role="presentation">O(nlogm)O(nlog⁡m)O(n\log m),被卡了 #include #include...

2018-01-25 08:18:36

阅读数:165

评论数:0

[主席树 链剖] LOJ#6073. 「2017 山东一轮集训 Day5」距离

刚开始想了一个很naive的分块加虚树的做法,不管时空复杂度还是代码复杂度都巨大 可以把问题转发成求 ∑i∈path(u,root)dis(pi,k)\sum_{i\in path(u,root)}dis(p_i,k) 再推一下式子就得到 ans=∑i∈path(u,root)dis(pi)+...

2018-01-18 09:58:56

阅读数:272

评论数:0

[长链剖分 & 线段树] BZOJ1758[Wc2010] 重建计划

学一发长链剖分 原来以前在ATCODER上做的一题就是这个套路…#include <cstdio> #include <iostream> #include <algorithm>using namespace std;const int N=100010;i...

2018-01-02 10:59:26

阅读数:173

评论数:0

[历史最值线段树] UOJ#164. 【清华集训2015】V

这种标记很强啊… UR#11 C题解#include <cstdio> #include <algorithm> #include <iostream>using namespace std;typedef long long ll;const int N=5...

2017-12-13 19:51:42

阅读数:232

评论数:1

[树链剖分 李超线段树] BZOJ4515 [Sdoi2016] 游戏

链剖以后就跟数列的做法一样了这题是区间覆盖区间查询,所以还要记一下区间里所有函数的最小值#include <cstdio> #include <iostream> #include <algorithm>using namespace std;typedef l...

2017-12-13 17:43:08

阅读数:345

评论数:0

[李超线段树] BZOJ3165 [Heoi2013]. Segment

李超线段树裸题#include <cstdio> #include <iostream> #include <algorithm> #include <cmath>using namespace std;const int N=100010,MX=4...

2017-12-12 20:44:45

阅读数:131

评论数:0

[线段树] Codechef December Challenge 2017. Red and blue points

没有大腿打CC是真的累跟JOI这题一个套路#include <cstdio> #include <iostream> #include <algorithm>using namespace std;const int N=2010;struct pt{ in...

2017-12-11 20:42:49

阅读数:126

评论数:0

[线段树] 「JOI Open Contest 2017」Bulldozer

老早以前的坑了题意大概是,给定平面内 n(≤2000)n(\le 2000) 个点,每个点有个可正可负的点权,求两条平行的直线,使得所在在这两条直线之间的点权和最大首先,如果我们知道这两条直线的斜率,假设这条线没有把这些点分成两个点集,那么可以把点按照距离直线的距离排序,记排序后的数列为A。转动直...

2017-12-03 21:38:33

阅读数:131

评论数:0

[bfs序 线段树] HDU5957. Query on a graph

求出bfs序那么一个点的儿子和孙子都是在bfs序上连续的一段记一下这个区间,然后线段树维护一下因为有环,那么肯定有多出来的一条边,给这条边的两个端点以及这两个端点连出去的点打个标记就好了细节贼多#include <cstdio> #include <iostream> #i...

2017-11-29 20:15:25

阅读数:111

评论数:0

[线段树]「CodePlus 2017 11 月赛」Yazid 的新生舞会

每种颜色单独做枚举右端点,另 pip_i 表示前缀 ii 中,当前颜色的个数, qiq_i 表示前缀 ii 中不是当前颜色的个数那么答案就要加上满足 pr−qr>pl−1−ql−1p_r-q_r>p_{l-1}-q_{l-1} 的 ll 的个数这个东西线段树大力搞吧……#include...

2017-11-27 21:22:20

阅读数:395

评论数:0

[线段树 哈希] BalkanOI 2016. Haker

题目是给定一个字符串,有三种操作.一种是询问两个子串是否相同一种是区间内的 aa 变成 bb,bb变成 cc … zz 变成 aa一种是区间 [L,R][L,R] 变成原串的区间 [k,k+R−L][k,k+R-L] 的子串因为要判断是否相同,肯定就要HASH,因为第二种操作,要记一下每个字母出现...

2017-10-31 11:40:38

阅读数:163

评论数:0

[线段树 & 前缀 优化建图 二分 2-SAT] CF Gym100159 facebook-hacker-cup-2012 I. Unfriending

二分答案对于一个点,肯定有一个区间里的点和它不能共存这个可以用线段树优化建图,每个friend list最多只能删一个,用前缀优化建图还要一些针对随机数据什么的trick才能过…比如二分中的那个特判#include <cstdio> #include <iostream> ...

2017-10-21 23:20:57

阅读数:275

评论数:0

[树链剖分 线段树] Codeforces 860E. Arkady and a Nobody-men

按照深度从小大加入,就是一个很典型的熟练剖分加线段树实现路径修改、询问的模型复杂度是 O(nlog2n)O(n\log^2n)最后一个点加个标记永久化、记忆化什么的卡一卡才能过…#include <cstdio> #include <iostream> #include &...

2017-10-18 12:28:56

阅读数:195

评论数:0

[线段树 哈希] Codeforces452F. Permutation

考虑第 ii 位上的数 aia_i ,如果对于任意 k∈[1,min(ai−1,n−ai)]k\in[1,\min(a_i-1,n-a_i)] ,ai−ka_i-k 和 ai+ka_i+k 都在它左边或者都在它右边,那么就不会存在以 aia_i 为中位数的长度为3的等差数列。那么我们从左往右扫这个...

2017-10-06 18:28:02

阅读数:146

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭