jzoj
EMber _
人但有追求,世界亦会让路。
展开
-
bzoj4596&&JZOJ5271&&5043保持平衡 贪心+堆(经典思想)
博爱路上种起了一棵棵的大树,但是有一些地方的树超过了负荷,有一些地方的树的数量又不够。我们不妨把博爱路看做一条数轴,数轴有n个点,从1到n编号,第i个位置原来现在有ai棵树,这个位置的需求是bi棵树。ai,bi都是0到10的整数。由于你需要是这个位置的树的数量保持平衡,所以你需要移除或者搬一些树过来。我们怎么使树的数量平衡呢?首先,你可以从某个位置i移动一棵树到位置j,这时,你需要的运费是|i原创 2017-08-14 16:59:49 · 402 阅读 · 0 评论 -
JZOJ5385. 【NOIP2017提高A组模拟9.23】Carry 树上倍增
题意:给你一棵树,q对点,要求每次从qx走到qy的花费为最大路径权值,可以把一条边减小L,问最少花费。= =简单题,比赛的时候只是扫了一眼,觉得应该是树剖裸题,然后就放了= = 事实上也可以用树剖来做,但是非常复杂,难以维护。 倍增就好了,和那个次小生成树一样,维护一个每个点往上2^i的路径的最大次大权值。然后那个L的那个东西,我每次在求一对点的LCA过程中,直接用已经求出的最大次大维护,然后最原创 2017-09-23 15:58:46 · 378 阅读 · 0 评论 -
JZOJ5384. 【NOIP2017提高A组模拟9.23】四维世界 组合数学
题意:求从(0,0,0)到(n,n,n)的方案数,有m个障碍点。n<=1e5,m<=5e3. 强烈谴责出题人,tmd能不能更不负责一点,这题面明显就tmd是neerc的题目直接google翻译过来,居然还有不通的句子。 知道了题意这就是个水题。 由于n<=1e5,我们并不可以直接dp,所以转换思路。 像这种方格走的玩意儿,一般来说,如果不是dp,基本上就是排列组合没得跑。 明显正难则反,既原创 2017-09-23 16:33:25 · 314 阅读 · 0 评论 -
jzoj5363【NOIP2017提高A组模拟9.14】生命之树 trie+启发式合并
题意:有一颗树,每个点有一个权值和一个字符串,要求计算出以每个点的子树的贡献,贡献的定义是两个点权值的xor*两个点字符串的lcp。n<=1e5其实这题我第一眼就想到trie,但是我trie基本上没做过多少题,不会xor统计的那种科技(这个太基础了吧喂),然后就异想天开用了个SA,结果爆炸,调了半天调不出来,心情复杂。正解是trie合并。开两颗trie,一颗记录lcp,一颗记录每个子树内有多少个点的原创 2017-09-15 22:24:51 · 322 阅读 · 0 评论 -
5368. 【NOIP2017提高A组模拟9.16】为逝去的公主献上的七重樱 单调队列
简化题意:求mex,有撤销,删除,添加,询问四种操作,n<=1e7. WerkeyTom_FTD大爷的题目。 O(n)明显。亏大发了我,想了半天想出正解但是忘记单调队列怎么维护最小值了,对没错你没有听错我忘记单调队列怎么维护最小值了,发生这种事我很抱歉…想扇自己两耳光。 其实主要是想着要维护原来的队列完整,如果维护一个单调递增那肯定容易啊,问题是要让维护的队列完整,因为我撤销撤的是队头,如果原创 2017-09-16 19:10:03 · 336 阅读 · 0 评论 -
JZOJ5351. 【NOIP2017提高A组模拟9.7】简单无向图 DP+组合数学
题意:给出n个点和每个点的度数,问能有多少种组合方式形成一个简单无向图(多个联通块允许)。n<=2e3.这题充分暴露出我的组合数学有多差。。 首先你需要手玩一段时间发现构造的图要不然是链要不然是环。 然后我们就可以按照情况DP了。 首先对于所有di=1的点,我肯定只能连成一条链。 那很好办了,设f[i][j]f[i][j]表示有i个度数为2的点,j个用来构造环,i-j个用来构造链的情况。原创 2017-09-08 22:51:34 · 612 阅读 · 0 评论 -
JZOJ5372. 【NOIP2017提高A组模拟9.17】猫 链表+贪心+堆优化
题意:一个长度为n的环,每个点有贡献,取了一个就不能取他的相邻,问取1-n/2个的最优方案是多少。 DP可能会挂,我自己试了试好像会出点问题= =毕竟是环,如果类似这种问题,不能拆环一般就不要DP。 于是考虑贪心,大根堆优化。其实这题可以算是堆优化贪心的典型例题了,每次取完堆顶以后把这个点的贡献改为这个点相邻的两个点的贡献-这个点的贡献,然后把相邻两个删掉,相当于再次取到这个点时就是撤销,就是把原创 2017-09-18 18:10:42 · 548 阅读 · 0 评论 -
JZOJ5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人 并查集+启发式合并
题意:构造一个长度为n数列,给出m个要求,保证第一个满足,每个要求具体描述为li,ri,ki,表示l到r的异或和为k。对于每一个操作,如果能和前i-1个要求不冲突(能构造出一个合法序列),输出1,否则输出0,最后输出合法序列(不合法的要求忽略),要求字典序最小。大爷好像很喜欢启发式合并= =。被虐了,完全没想到并查集那个地方去。 假设我们现在已经构造出了原序列,接下来的问题就是怎么符合要求。那么我原创 2017-09-17 15:43:04 · 423 阅读 · 0 评论 -
JZOJ5390. 【NOIP2017提高A组模拟9.26】逗气 单调队列
题意:给一个数轴,有两种点,每个点都有一个坐标和权值,设第一种为ax,ay,第二种是dx,dy。那么对每一个第二种点,对于所有第一种点,求max(ay−|ax−bx|∗by)max(ay-|ax-bx|*by),n<=2e5.其实很套路的题目,因为单调队列的思想出了点问题= =直接套用斜率优化的那种方法就好了,不然会有问题。。 首先化简式子,由于有绝对值所以拆开,分成左右两部分搞,这个显然。 然原创 2017-09-27 18:05:36 · 364 阅读 · 0 评论 -
JZOJ5344. 【NOIP2017模拟9.3A组】摘果子 树上依赖背包
算法听起来高大上其实是个水题。 题意:给出一棵树,每个点有花费和收益,选择一个点必须选择他的父亲。从根出发,问代价在m以内的最高收益是多少.n,m<=2e3.其实很明显的背包,就是依赖关系有点难搞(其实是我太弱)。 首先既然选择一个点必须选择他的父亲,那么我们所有的转移都要强制性,即: f[x][j]=f[x][j−w[j]]+v[j]f[x][j]=f[x][j-w[j]]+v[j] 然后原创 2017-09-03 14:43:02 · 574 阅读 · 0 评论 -
bzoj1076 [SCOI2008]奖励关 状压+期望dp
题意就不说了。分析:表示我状压本来就不好,加上个我不擅长的期望就彻底懵逼了。。 一开始想到把物品选或不选的方案设为状态,设f[i][j]表示i轮后物品的状态为j。 然后。。然后我就懵逼了。按照正常套路来说,先枚举轮(从后往前好处理),然后枚举当前状态,然后再枚举上一轮的状态看上一轮的状态是否有选当前所要选的点,但是这样复杂度直接爆炸。。O(2<<30*15*100)。。后来看了一波题解,表示学习原创 2017-02-21 21:51:32 · 463 阅读 · 0 评论 -
JZOJ5379. 【NOIP2017提高A组模拟9.21】Victor爱数字 数位DP
题意:求a,b的区间内有多少个数字,他中间不包含回文串。a,b<=1e18 智障预定。 一开始觉得这不是裸题吗,随便记录一下前面或者后面两个就好了,然后感觉十分模板,然后打了个windy数的模板以后开始调,刚开始还好,然后发现边界处理有点问题,然后觉得不妥,xjb调着调着样例都过不了了,然后直接掀桌弃疗。 主要是按照那题的方法一口气做到最后,边界上面总是会少计算一个,而且是每一部分少计算一个,原创 2017-09-22 21:01:13 · 305 阅读 · 0 评论 -
JZOJ5347【NOIP2017提高A组模拟9.5】遥远的金字塔 斜率优化 DP
题意:给你一个金字塔(每层长度不严格递减),问你用k个矩形覆盖,最多的面积。 n<=2e4,m<=100.首先n^2k的dp随便搞搞就可以了。 然后问题是怎么优化。 我们设f[i]选了p个,g[i]选了p-1个矩形的最多面积。 那么明显有: f[i]=max(g[j]+len[i]∗(i−j))f[i]=max(g[j]+len[i]*(i-j)) 设有决策点j,k(k<j)(k<j),原创 2017-09-06 20:40:31 · 310 阅读 · 0 评论 -
JZOJ5272. 神奇的重复序列 结论
不知道这题该归类到什么东西里面。。。可以发现,假设最终通过改变而相同的子串,假设他们一个结尾在i,一个结尾在j,设k=j-i,他们中的子串中任意两个下标%k相同的位置,他们的字符肯定也相同(结论。)那么知道这一点后我们就可以开始乱搞了(迷) 我们先枚举周期k,然后扫一遍串。 每一次维护一个右指针r,表示最多能延伸到哪里,然后设一个need表示当前用了多少次机会,那么每次我们可以更新答案ans=m原创 2017-08-14 22:55:24 · 240 阅读 · 0 评论 -
5329. 【NOIP2017提高A组模拟8.22】时间机器 map
md。。这种纯考STL的题目真的好吗,还一天出两题。。 题意:给出两大类物品,每类物品有任意种,属性l,r,数量s。 对于类A,类B要找一个l,r能包含他的来和他配对,问最终能否把A全部配对完。。 明显的最大匹配,最大流xjb跑跑,,问题是n<=5e4,怎么办? 贪心很明显了,左端点排个序,右端点在包含的情况下尽量靠近,二分或者map都可以吧。#include<cstdio>#includ原创 2017-08-22 15:59:56 · 268 阅读 · 0 评论 -
5328. 【NOIP2017提高A组模拟8.22】世界线 bitset+拓补序合并
题意:给你一个DAG,算每个点能到达的点数-已经连边的边数。 n<=6e4,m<=1e5n<=6e4,m<=1e5 这数据范围很鬼畜啊。直接暴力拓补序合并GG,加个bitset也有点危险,然后我就学习了一种新姿势。。 每次只存500个点,类似于循环展开,那么时间复杂度就是O(nm/64)O(nm/64)变为O(nm/500/64)O(nm/500/64)(还有这种操作。。) bitset中能原创 2017-08-22 16:19:37 · 308 阅读 · 0 评论 -
JZOJ5281. 【NOIP提高组模拟A组8.15】钦点 十字链表
经典的十字链表,暴力搞搞就可以了。#include<iostream> #include<deque> #include<cstring>#include<cstdio>#include<algorithm> #define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using nam原创 2017-08-15 16:28:21 · 304 阅读 · 0 评论 -
5333. 【NOIP2017提高A组模拟8.23】大新闻 主席树/树套树
数据结构学傻选手。。。 题意:给出一个序列,每次可以在开头添加或删除,以及查询区间k大。一看添加无脑树套树,成功fst,事实上只要一个主席树就可以了,倒过来每次覆盖掉。。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m,tot,top,sz;const int N=5e5+5;原创 2017-08-23 14:44:32 · 278 阅读 · 0 评论 -
5331. 【NOIP2017提高A组模拟8.23】壕游戏 费用流 动态连边
题意:n个点m条边,每条边有一个经过次数限制ci,假设经过了x次,第x次费用为ai*x+bi,有s个终点,要跑k次,问最小总费用多少。 巨鬼畜,连边只按照第一次的连,然后费用流的时候每流一条边然后再连下一条边。。 我好菜啊,ymw随手AK。#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define原创 2017-08-23 14:51:30 · 289 阅读 · 0 评论 -
5332. 【NOIP2017提高A组模拟8.23】密码 AC自动机+数位DP
题意:求x-y之间有多少个数字包含至少k个密钥,密钥给出,x-y的数位比500小。 老年选手,这种题都不会做了,我退群吧。 就是随便AC自动机dp啊。。。我太废了。 设f[i][j][k][0/1]表示匹配到串的第i个节点,AC自动机上跑到了j,已经匹配了k个密钥, 0/1表示我之前匹配的哪些数位是否完全匹配某些密钥。 所以1可以转化为1或0,0只能转化0,然后xjbDP就好。。#incl原创 2017-08-23 20:35:24 · 277 阅读 · 0 评论 -
JZOJ5358. 【NOIP2017提高A组模拟9.12】BBQ
n<=2∗105n<=2*10^5作为一个丝薄只会n^2。。。 事实上,可以发现C(ai+bi+aj+bj,ai+aj)C(ai+bi+aj+bj,ai+aj)是长宽分别为ai+aj,bi+bj的矩形的从左下角走到右上角的步数,那么我们dp一下,去掉走到自己的点数,然后除以2就好了。#include<cstdio>#include<algorithm>#include<cstring>#de原创 2017-09-13 21:35:42 · 206 阅读 · 0 评论 -
jzoj5347. 【NOIP2017提高A组模拟9.5】遥远的金字塔 容斥
题意:给出n,m,总共有n+1个位置,第n+1个位置上固定为m,要求在前n个位置上填不大于m的正整数,然后在数轴上的0点有一个球,第i次走的步数可以是第i个位置上的数或者其相反数(后退)。要求最后能走到1.问有多少种方法。我仿佛是个丝薄。。明明这题更水偏偏要去搞DP。。 可以手玩或者通过扩欧证明得一个合法的序列一定他的总gcd=1。 那么我们可以发现,要求总序列gcd!=1,肯定是整个数列都是m原创 2017-09-06 17:25:34 · 351 阅读 · 0 评论 -
JZOJ5377. 【NOIP2017提高A组模拟9.19】开拓 DP
题意:给你一个能力值为w的钻头,飞过n个星球,每个星球可以开采矿石(损耗%k),或者恢复钻头(增加%c),c和k给定,开采能够得到原来能力值a[i],回复需要耗费a[i]能力值,问最多能得到多少贡献。啊哈哈真是狗屎运= =前几天在hzwer的题目单里面刷dp题目正好看见这题,感觉思路挺有价值的就记下来了,结果就考了= =。 一个能力值为w的钻头分解为w个能力值为1的小钻头,可以发现w个小钻头互相独原创 2017-09-20 17:20:18 · 236 阅读 · 0 评论 -
JZOJ5400. 【NOIP2017提高A组模拟10.7】Repulsed 树型DP+贪心
题意:小w 心里的火焰就要被熄灭了。 简便起见,假设小w 的内心是一棵n -1 条边,n 个节点的树。 现在你要在每个节点里放一些个灭火器,每个节点可以放任意多个。 接下来每个节点都要被分配给一个至多k 条边远的灭火器,每个灭火器最多能分配给s 个节点。 至少要多少个灭火器才能让小w 彻底死亡呢?whx大爷的题目。 设f[x][k]表示在x的子树中,距离x为k的灭火器有多少个点能分配。原创 2017-10-07 22:57:27 · 602 阅读 · 0 评论 -
JZOJ5418. 【NOIP2017提高A组集训10.24】 树形DP+组合数
题意:给出n个数,有一些特定要求,形如x,y表示x一定要在y的左边,求排列方案数。一早上死想序列做法,想到了一下连边然后否决了。。然后想出了50分的容斥或者状压,然后觉得100分是不是再优化一下啥的,然后就再没脱出坑。。 事实证明部分分做法不一定是正解做法的暴力版本。。 首先有一个条件就是每一个人最多提出一个要求。 那么连边后的dag是一个森林,不相交的n棵树。 那么对于每一棵树,我们从下往原创 2017-10-24 17:05:12 · 327 阅读 · 0 评论 -
JZOJ5419. 【NOIP2017提高A组集训10.24】线段树
很烦人的线段树= =。不过理解了以后还是挺好打的,就是太长。 具体的话就是维护每一个区间内到左端点右端点的最小代价和最左边,最右边的可用的位置,然后直接更新就好了,至于查询的话,就是查询中位数咯,查询一下中位数左右两边最靠近他的可用的点,然后取个代价最小的。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b原创 2017-10-24 17:16:00 · 254 阅读 · 0 评论 -
JZOJ5441. 【NOIP2017提高A组冲刺11.1】序列 启发式搜索+迭代深搜
题意:给定一个1~n的排列x,每次你可以将x1~xi翻转。你需要求出将序列变为升序的最小操作次数。有多组数据。 n<=25 吃了搜索的亏,表示估价函数这玩意儿碰都没碰过,A*也是好久以前才做过的。。考试的时候打了个搜索还错了,没脸见人了。。 有两个优化。 第一个就是估价函数,这个必须加上,每次交换的时候,我们假设当前已经交换了x步,然后枚举答案,估价函数g为接下来要把当前序列变为升序的期望步原创 2017-11-01 16:46:54 · 627 阅读 · 0 评论 -
JZOJ5442【NOIP2017提高A组冲刺11.1】荒诞 三进制状压+欧拉序
题意:我有一个n个点,m条边的无向图,第i个点建立一个旅游站点的费用是c_i。特别地,这张图中的任意两点间不存在节点数超过10的简单路径。 为了把一切都做得完善,为了使我感到不那么孤独,我想要建造一些旅游站点使得每个点要么建立了旅游站点,要么与它有边直接相连的点里至少有一个点建立了旅游站点。我还希望这个建造方案总花费尽量少。 请求出这个花费。 czy大爷出的好题。 考场上有正解方向的想法原创 2017-11-01 22:17:35 · 321 阅读 · 0 评论 -
JZOJ5411. 【NOIP2017提高A组集训10.22】友谊 DP
DescriptionFlowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种,圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗粒的序列,如果存在1<=i<j<=2m,满足以下条件:1)i 为偶数,j 为奇数2)第i 颗友谊颗粒和第j 颗友谊颗粒同为圆粒或同为皱粒3)第i 颗友谊颗粒和第j 颗友谊颗粒都还没有被使用过那么,就可以使用这两颗友谊原创 2017-10-25 16:21:24 · 505 阅读 · 0 评论 -
NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
题意:求lcis以及其方案。 原题:千帆渡 n<=5000. 很明显的DP。 设f[i][j]表示做到a的第i位,结尾是b的第j位,这样子便于记录方案。 那么明显有 f[i][j]=max(f[i][k-1])+1(b[j]>b[k]&&j>k)f[i][j]=max(f[i][k-1])+1(b[j]>b[k]&&j>k) 由于规定了a[i]=b[j],所以上面的可以变成 f[i]原创 2017-10-25 20:41:26 · 239 阅读 · 0 评论 -
JZOJ5243【GDOI2018模拟8.8】超级绵羊异或 类欧几里得算法
好像没什么人去改这题啊。。。 题意:求a xor(a+b)xor(a+b*2)…..xor (a+b*(n-1))考虑计算答案的第x位是否为1 那么对于a+bi,判断(a+bi)/(1<#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(原创 2017-08-08 17:12:53 · 522 阅读 · 0 评论 -
JZOJ5454. 【NOIP2017提高A组冲刺11.5】仔细的检查 树hash
Descriptionnodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。 这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点��0在第一幅图中编号为��1,在第二副图中编号为��2。 于是,nodgd决定检查一下他画出的两棵树到底是不是一样的。nodgd已经给每棵树的节点都从1到��进行了编号,即每棵树有��个原创 2017-11-05 16:51:05 · 697 阅读 · 0 评论 -
JZOJ5457. 【NOIP2017提高A组冲刺11.6】项链
题意:nodgd的粉丝太多了,每天都会有很多人排队要签名。今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记原创 2017-11-06 15:34:54 · 285 阅读 · 0 评论 -
JZOJ5417. 【NOIP2017提高A组集训10.24】 二维线段树
题意:给一个矩阵,q次询问子矩阵,查询最大值最小值,区间和, 每个询问的方阵的长不超过宽的两倍。屁股后面那个两倍什么玩意儿的你想用就用,我不想用,懒得打什么鬼畜的rmq,去他的,二维线段树多爽,直接过。 然后我比赛把前缀和打错了啊啊啊啊啊!!! /喷血 犯了史上最傻逼错误没有之一,更让我绝望的是,我打拍的时候直接把前缀和那个地方黏过去用所以根本没拍出来/喷血。 血的教训,希望我能铭记。#inc原创 2017-10-24 14:49:43 · 324 阅读 · 0 评论 -
JZOJ5415. 【NOIP2017提高A组集训10.22】公交运输 DP
题意不说了。有点鬼畜,比赛只会50分,花了30分钟思考一无所获,连按模分组都没想到迟早退役。 然后花了十分钟打50分扔了这题。巨亏。 其实比赛还剩一个小时的时候发现是斜率优化,但是没时间打所以就放了。。 事实上这并不是简单的斜率优化,,因为如果直接做不能保证他的斜率是单调递增的。 首先先把点按模分组,只有%c相同的点才能被到达。 然后就可以直接斜率优化了,每次先枚举c,对于栈中的点,我们把原创 2017-10-23 21:39:29 · 377 阅读 · 0 评论 -
JZOJ5439. 【NOIP2017提高A组集训10.31】Calculate 乱搞
严格来说这题确实就是乱搞。。 明显来说,有式子都要你化掉。 这题也是一样的,设一个数x,假如有Ac1,Ac2....Ack=xA_{c_1},A_{c_2}....A_{c_k}=x 那么原来的式子就变成了 那么我们考虑设g[i]=b[i]%x,即按照a[i]来分组,在设在k个数中有t个数的g要大于T%x. 那么有: 然后预处理出后面那两个东西就可以了。#include<cstdio>原创 2017-10-31 17:03:24 · 300 阅读 · 0 评论 -
JZOJ5399. 【NOIP2017提高A组模拟10.7】Confess bitset
Description小w 隐藏的心绪已经难以再隐藏下去了。 小w 有n + 1(保证n 为偶数) 个心绪,每个都包含了[1,2n] 的一个大小为n 的子集。 现在他要找到隐藏的任意两个心绪,使得他们的交大于等于n/2 。Input一行一个整数n。 接下来每行一个长度为k 的字符串,该字符串是一个64 进制表示,ASCII 码为x 的字符代表着x-33,所有字符在33 到33 + 63之间。原创 2017-10-08 11:14:32 · 406 阅读 · 0 评论 -
JZOJ5429. 【NOIP2017提高A组集训10.27】排列 DP+容斥
Description有两个长度为n的排列A和B,定义排列的价值f(A,B)为所有满足A[i]>B[i]的位置i的数量。 现给出n,A,B和S,其中A和B中有一些位置的数未知,问有多少种可能的填数的方案使得f(A,B)=SInput第一行两个整数n和S 第二行n个数表示排列A 第三行n个数表示排列B 其中A和B中某些位置是0表示当前位置上的数还未确定,保证不存在一个位置i满足A[i]=0且B原创 2017-10-27 20:05:36 · 460 阅读 · 0 评论 -
JZOJ5393【NOIP2017提高A组模拟10.5】Snake vs Block DP
题意没法长话短说。明显DP。。一开始想的设f[i][j][k]表示前i行,第j列,生命值为k。 然后发现在一行内的转移不太容易搞,然后开始调,就是没想过多加一个DP式子,对着暴力xjb调了半天,能过小数据就不理了。结果WA60。。。迷。 正解是设f[i][j][k]表示前i行,生命值为j,k为列,然后设g[i][l][r]表示生命值为i,在第l,r列之间移动。 那转移就非常好写了= = g[原创 2017-10-05 20:35:28 · 602 阅读 · 0 评论 -
JZOJ5394. 【NOIP2017提高A组模拟10.5】Ping 树上差分 树状数组
题意:有一棵树,给你一些点对,要求这些点对不能联通,问最少需要拆掉多少个点。输出方案。 比赛的时候有想法的一道题目,但是由于比较煞笔所以只想到了树剖,然后觉得万一不能切就亏大了,求稳所以没打。 考虑一对点,他们的路径为x-lca-y,那么对于这条路径上查询是否有被拆掉的点,没有就直接把lca拆掉。 那么我们对于所有点对都这么干,按照dfs序倒着处理,证明的话,把树看成一个序列,会发现按照右端点原创 2017-10-05 21:54:31 · 518 阅读 · 0 评论