摘要: 题目 2行c列个点,开始时互不联通,支持给同一列或着同一行相邻的两个点连边,和询问两个点能否在一个联通块里。 1≤C≤100000 1<=操作数<=100000; 题解 线段树的又一个骚操作。 我们把2*2的4个点看作线段树上的叶子结点。其他节点就是其儿子的合并(叶子结点的父亲表示2*4八个点,然后 阅读全文
posted @ 2018-08-05 22:30 Xu-daxia 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意 给一张无向图,要求你用黑白灰给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻;对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成功n(<=200000) and m(<=500000) 题解 我一开始以为是一定成功。 结果忘了一 阅读全文
posted @ 2018-08-05 15:57 Xu-daxia 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 今天上午正在打题,听同学说晚上黄渤老师要来一阶为高三学长加油,想到终于可以见到一位真人明星了,心中突然激动。 中午跟我妈说了黄渤要来的事。我妈赶紧给我手机说,一定要拍几张照片回来。 我:“。。。” 晚上刚吃完饭,想打题打到8点然后凑热闹看看黄渤。然后去一阶踩点。 然后碰到机房几个。拉我去周边的一个大 阅读全文
posted @ 2018-08-04 22:00 Xu-daxia 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意 n个点完全图,每个边有两个权值,求分数规划要求的东西的最小值。 (n<=1000) 题解 心态炸了。 堆优化primT了。 普通的就过了。 我再也不写prim了!!!! 咳咳 最优比率生成树板子题。 公式不是很难推吧。 1 #include<iostream> 2 #include<cmath 阅读全文
posted @ 2018-08-04 17:13 Xu-daxia 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题意 给你n次测试的得分情况b[i]代表第i次测试的总分,a[i]代表实际得分。 你可以取消k次测试,得剩下的测试中的分数为 问分数的最大值为多少。 题解 裸的01规划。 然后ans没有清0坑我半天。 1 #include<iostream> 2 #include<cstring> 3 #inclu 阅读全文
posted @ 2018-08-04 11:24 Xu-daxia 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个环,每个节点有一个所属国家,k次事件,每次对[l,r]区间上的每个点点权加上一个值,求每个国家最早多少次操作之后所有点的点权和能达到一个值 题解 一个一个国家算会T。这题要用整体二分。我们二分mid给所有国家判断。把可以满足条件的国家放在左边,把所有不满足的国家放在右边。然后继续递归。 阅读全文
posted @ 2018-08-04 09:25 Xu-daxia 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意 给出n个点m条边的无向图。 每条边有两个权值a,b; 问在保证从1到n的路径a权值和小于x时,路径上b权值最大值最小为多少。 (n≤10000,m≤50000,x≤1000000000) 题解 二分x,然后跑最短路判断。 1 #include<iostream> 2 #include<cstr 阅读全文
posted @ 2018-08-03 22:12 Xu-daxia 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题解 二分时间 然后一个显然的事是一个军队向上爬的越高它控制的点越多 所以首先军队尽量往上爬。 当一个军队可以爬到根节点我们记录下它的剩余时间T和它到达根结点时经过的根节点的子节点son。 当一个军队爬不到根节点时我们就让它控制它可以爬到的最高点。 然后我们把爬到根节点的军队按T从小到大排序。 然后 阅读全文
posted @ 2018-08-03 20:58 Xu-daxia 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题解 单调性是当s-y大于0时w越小答案越优,反过来也成立。 所以二分答案。 然后问题是Yi怎么求,最接用前缀和预处理就行了。 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 #inclu 阅读全文
posted @ 2018-08-03 20:16 Xu-daxia 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题意 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能重复用。 题解 简单的网络流判定。 一看问法想到二分答案。然后边不能重复直接上网络流。 (用边长小于mid的边建图然后跑最大流,最后比较流量 阅读全文
posted @ 2018-08-03 19:59 Xu-daxia 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个长度为n的序列a1~an,从中选取一段长度在s到t之间的连续一段使其平均值最大。(n<=100000) 题解 二分答案平均值。 judge时把每一个a[i]-mid得到b[i] 在b[i]中找到一段合法的串使其权值和最大。 当最大权值和大于等于0时则mid上移。 求最大权值和用单调队列 阅读全文
posted @ 2018-08-03 15:04 Xu-daxia 阅读(218) 评论(0) 推荐(0) 编辑
摘要: Description 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢? 在一条直线上有 N 个炸 阅读全文
posted @ 2018-08-02 16:29 Xu-daxia 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 题解 (不会矩阵加速的先去学矩阵加速) 反正我想不到线段树维护矩阵。我太菜了。 我们在线段树上维护一个区间的斐波那契的列矩阵的和。 然后询问时提取每个符合题意列矩阵的答案项(不是列矩阵存了两项吗,一个是当前项,一个是用来递推的) 因为矩阵乘有结合律所以区间加这个操作就直接区间乘变换矩阵的x次方就行。 阅读全文
posted @ 2018-08-01 19:18 Xu-daxia 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 题解 弱智题,二进制表示位数。合并时用| 就是被1<<x卡了好久。 要写成1ll<<x才行 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<cstdio> 5 #include<algorithm> 6 us 阅读全文
posted @ 2018-08-01 17:59 Xu-daxia 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 题意 给你一个1~n排列,问有没有一个等差数列(长度至少为3) 题解 我居然自己想到了正解。 但我最后写挂了,所以我又看了题解。 我们维护了一个以权值为下标的01序列。 我们扫描整个序列。对于每一个正在扫描的数,我们判断以这个数的权值作为对称点,01序列是否对称。 这个序列用权值树状数组维护就行。 阅读全文
posted @ 2018-08-01 17:25 Xu-daxia 阅读(195) 评论(0) 推荐(0) 编辑