随笔分类 -  分治;二分,三分;整体二分;cdq分治

摘要:https://www.luogu.org/problemnew/show/P4095 不太会。。 网上有神奇的做法: 第一种其实是暴力(复杂度3e8...)然而可以A。考虑多重背包,发现没有办法快速删除某个物品造成的贡献。考虑对于每个i,求出an1[i]和an2[i],分别表示对于[1,i]和[i 阅读全文
posted @ 2018-11-06 15:44 hehe_54321 阅读(284) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1063/problem/C 首先可以想到一个简单做法:先钦定这个直线的斜率k=-1,然后设直线y=-x+b 设黑点放直线上方;如果已知(x,y)是黑点,那么y>-x+b,b<x+y 如果已知(x,y)是白点,那么b>x+y 可以二分b, 阅读全文
posted @ 2018-10-25 18:42 hehe_54321 阅读(209) 评论(0) 推荐(0)
摘要:https://www.nowcoder.com/acm/contest/172/A 此题中,区间的中位数为:最大的数,使得 区间内>=x的数个数 > <x的数个数 二分答案x,把>=x的数标为1,<x的数标为-1,得到数组b,b数组的前缀和为数组c,那么就是要判断是否存在(0<=l,r<=n,r- 阅读全文
posted @ 2018-10-02 21:02 hehe_54321 阅读(178) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/958/problem/E3 当没有三点共线时,任意一个这样的点集都是保证可以找到答案的,(考虑任意一种有相交的连线方案,一定可以将其中两条相交的连线改成不相交的,并使得连线的总长度变小;显然连线的总长度最小的方案一定存在,则这种方案一定 阅读全文
posted @ 2018-09-27 10:06 hehe_54321 阅读(308) 评论(0) 推荐(0)
摘要:https://konnyakuxzy.github.io/BZPRO/JudgeOnline/4059.html https://cn.vjudge.net/problem/Gym-100624D 根本不会。。。 似乎有很高妙的分治做法啊!https://www.cnblogs.com/forev 阅读全文
posted @ 2018-08-26 20:59 hehe_54321 阅读(306) 评论(0) 推荐(0)
摘要:查询,就相当于先删去这条边,然后查询边的两个端点所在连通块大小,乘起来得到答案,然后再把边加回去 可以用线段树分治做 阅读全文
posted @ 2018-07-10 09:35 hehe_54321 阅读(236) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-06-02 13:54 hehe_54321 阅读(3) 评论(0) 推荐(0)
摘要:01分数规划:https://www.cnblogs.com/Hallmeow/p/7750483.html 对于此题:把点权挂到所有从该点出发的边上即可;那个重复点权只算一次是不用管的 阅读全文
posted @ 2018-05-26 11:47 hehe_54321 阅读(160) 评论(0) 推荐(0)
摘要:(勿看,仅作笔记) bzoj权限题。。。 https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间cdq,但是没想出来。。。应该是不行的 事实上,如果询问的不是最大值,而是一些满足[l,r]的答案等于 阅读全文
posted @ 2018-05-14 09:32 hehe_54321 阅读(274) 评论(0) 推荐(0)
摘要:以下这个做法应该是叫线段树分治。。。 根据修改操作预处理出每条边存在的时间区间[l,r](以操作序号为时间),然后把所有形式化后的修改挂到线段树节点上。 处理完修改后,dfs一遍线段树,进入某个节点时把那个点上所有的修改操作做一遍连边(用按秩合并并查集),出来时再撤销那些连边;那么到达叶节点时,刚好 阅读全文
posted @ 2018-05-13 15:04 hehe_54321 阅读(321) 评论(0) 推荐(0)
摘要:cdq分治的基本思想: 在solve(L,R)中,需要先分治solve两个子区间,再计算左边区间修改对右边区间询问的贡献。 计算额外的贡献时,两子区间各自内部的顺序变得不再重要(不管怎么样左边区间的都发生在右边之前),于是就少了一维 https://www.lydsy.com/JudgeOnline 阅读全文
posted @ 2018-05-12 13:32 hehe_54321 阅读(1146) 评论(0) 推荐(0)
摘要:http://codeforces.com/problemset/problem/484/E 题意: 给定一个长度为n的数列,有m次询问,询问形如l r k 要你在区间[l,r]内选一个长度为k的区间,求区间最小数的最大值 整体二分啊。。。。O((n+m)log(n)log(值域)) 对于一个询问, 阅读全文
posted @ 2018-05-01 18:20 hehe_54321 阅读(278) 评论(0) 推荐(0)
摘要:用树套树就很麻烦,用整体二分就成了裸题。。。。 错误: 1.尝试线段树套平衡树,码农,而且n*log^3(n)慢慢卡反正我觉得卡不过去 2.线段树pushdown写错。。。加法tag对于区间和的更新应该要乘上区间长度的 错误: 1.尝试线段树套平衡树,码农,而且n*log^3(n)慢慢卡反正我觉得卡 阅读全文
posted @ 2018-04-29 14:12 hehe_54321 阅读(246) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-04-13 18:54 hehe_54321 阅读(4) 评论(0) 推荐(0)
摘要:写的让人看不懂,仅留作笔记 静态主席树,相当于前缀和套(可持久化方法构建的)值域线段树。 建树方法:记录前缀和的各位置的线段树的root。先建一个"第0棵线段树",是完整的(不需要用可持久化的方法),所有数据为0。后面每一个位置的前缀和放的线段树都先设root与前一位置的线段树一样,然后再按照原序列 阅读全文
posted @ 2018-03-07 22:22 hehe_54321 阅读(252) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problemnew/show/3382 (dcmp是个好东西) 先增后减求极大。 如果f(lm)大于f(rm),那么答案在[l,rm]之间 否则答案在[lm,r]之间 (在这里,等于无所谓) 如果先减后增求极小,则大于和小于交换。(如果忘了,画张函数图像 阅读全文
posted @ 2017-11-07 21:43 hehe_54321 阅读(236) 评论(0) 推荐(0)

AmazingCounters.com