摘要: ①最小值最大->二分答案 ②贪心策略 从下向上匹配,先考虑树只有两层(一个根和一堆儿子) 显然想让他们中多出现赛道,我们把边权排序,从最小的边开始,用mid-w得到x,然后找比x略大或等于x的边,因为要使向上匹配的贡献最大,所以不能找比x长太多的边 处理完最下层后向上递归的同时将处理完的链的贡献向上 阅读全文
posted @ 2019-10-08 09:25 喵の耳 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 裸的板子,判一下d和c的大小 我菜死了,kruskal写挂的原因竟然是,sort的范围错了 WA到爆了 kruskal都忘了怎么写,赶快滚去复习 code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespace gengyf{ 4 阅读全文
posted @ 2019-10-07 11:40 喵の耳 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 前言QwQ 学长讲题系列,然而在培训前几天,某神仙刚推荐了此题,$ORZ$ 学长的一句话题解:二分答案,看前缀和奇偶变化的位置 计算点$1$到点$i$上的点的个数,二分位置 记得开$long long$ code 1 #include <bits/stdc++.h> 2 using namespac 阅读全文
posted @ 2019-10-07 08:25 喵の耳 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 基本算法4-1 题里都说了$2^k$,明显倍增 因为跑路器的存在,不能直接跑最短路的原因: 如图,如果直接最短路从1号点到5号点的距离为3,需要3秒 而实际上走$1->5$这条边,因为$8=2^3$,只需1秒 $n≤50$直接无脑floyed随便跑 code 1 #include <bits/std 阅读全文
posted @ 2019-10-05 19:52 喵の耳 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 单调队列处理第k远的点 倍增跳点 滚(动数组)一维空间就能开下了 注意$m≤10^{18}$的读入 code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespace gengyf{ 4 #define ll long long 5 阅读全文
posted @ 2019-10-05 19:24 喵の耳 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 今天%你赛考了差分约束相关,于是发现又有忘了的东西,复习 0x00 差分约束 差分约束是求解N元一次特殊不等式组的一种方法。差分约束系统包含$N$个变量和$M$个约束条件,每个约束条件都是一个关于其中两个变量的一个一次不等式 ,每个不等式形如$x[i]-x[j]≤a[k]$,$x[i],x[j]$为 阅读全文
posted @ 2019-10-04 19:29 喵の耳 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 听说是裸的板子,所以开始现学 题目给出的5种操作都能转化为差分约束 如果大于正向连$1$的边 如果小于反向连$1$的边 如果等于要双向建边 另:要开$long long$ code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespa 阅读全文
posted @ 2019-10-03 16:16 喵の耳 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 线段树动态维护最大子段和 观察分析题面发现,如果要使他匹配成功,则对于$1≤i≤n$左面任意$i$个点,至少右面也有$i$个点和他匹配 设$a[i]$为选择型号$i$的人数,$sum[i]$为前缀和 所以对于任意$sum[l,r]≤(r-l+1+d)*k$ 设$s[l,r]$为$l≤i≤r,a[i] 阅读全文
posted @ 2019-10-02 11:01 喵の耳 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 构造矩阵 发现只能相邻两个车站转移,所以能够写出下面这个矩阵 ${\begin{bmatrix} 0&1&0&0&0&0&0&1 \\ 1&0&1&0&0&0&0&0\\0&1&0&1&0&0&0&0 \\ 0&0&1&0&1&0&0&0 \\0&0&0&1&0&1&0&0 \\0&0&0&0& 阅读全文
posted @ 2019-09-29 07:36 喵の耳 阅读(149) 评论(0) 推荐(0) 编辑
摘要: topsort 板(?)题 显然,题目要求从入度为零的点遍历到出度为零的点,想到用拓排 另如果是输入层,那么u[i]为1或0都没有关系,一定会激活 同时处理出度便于输出 code 1 #include <bits/stdc++.h> 2 using namespace std; 3 namespac 阅读全文
posted @ 2019-09-28 21:21 喵の耳 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 前言 这个人太菜了都要CSP了才学拓扑排序 0x10 定义 给定一张有向无环图,若一个由图中所有点构成的序列A满足边(x,y),x在A中都出现在y之前,则称A是该有向无环图顶点的一个拓扑序。求解A的过程就叫做拓扑排序。 ——蓝书·lyd 0x20 思想+过程 选择入度为0的点,然后把他连向的点入读减 阅读全文
posted @ 2019-09-28 17:41 喵の耳 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 真·NOIp day1 T2 众所周知noip按难度顺序出题 感谢洛谷题解@greenlcat 提供思路及写法 写+调+写题解 共计一整个晚上2.5个小时对我今天晚自习啥都没干 分步解决这个题 Step 1 :倍增LCA 本身这题码量就不小,还写树剖LCA,我这个菜鸡调不出来的 倍增求LCA好像没什 阅读全文
posted @ 2019-09-27 21:30 喵の耳 阅读(209) 评论(0) 推荐(0) 编辑
摘要: f[x][0] 表示最近控制驿站的距离 f[x][1]表示最远不能控制的驿站距离 当f[x][0]+f[x][1]≤k是说明能被控制,但没有贡献 当f[x][1]=k时,x必须被控制,这时已经到达能控制点的最远距离,如果再向上,x就无法被控制 正确性:如果x可以向上移动,并且仍然能控制x移动前能控制 阅读全文
posted @ 2019-09-27 16:49 喵の耳 阅读(133) 评论(0) 推荐(0) 编辑
摘要: NOIp 2015 day 1 T1 神奇的幻方 标签:模拟 code 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int a[40][40]; 5 int main(){ 6 int n,x[1600],y[16 阅读全文
posted @ 2019-09-26 17:07 喵の耳 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 每个点的状态只和他的父亲和儿子有关 转移方程: $f[i][0]$ i放 $f[i][1]$ i不放,儿子放 $f[i][2]$ i不放,父亲放 j是i的一个儿子 i放,可以覆盖自己、父亲和儿子。i放的情况下,j可以放或不放 $f[i][0]+=min(f[j][0],f[j][1],f[j][2] 阅读全文
posted @ 2019-09-26 17:01 喵の耳 阅读(151) 评论(0) 推荐(0) 编辑