摘要: 链接 直线上有n座山峰,第i座的高度为hi。从某座山峰上放飞一架纸飞机,它可以从左往右依次经过一系列高度严格递减的山头。 假设五座山峰的高度依次是3,4,3,2,1。从第一座山峰上放飞的纸飞机可以依次经过第一、四、五座山峰,但不能经过第二、三座山峰。 对于每座山峰,求出要经过除这座山峰外的每座山峰, 阅读全文
posted @ 2020-12-19 23:10 肆之月 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 将树压缩成若干个有用的点 for(int i=0;i<k;++i){ int f=lca(stk[r],h[i]); while(r&&id[f]<id[stk[r-1]]){ g1.add(stk[r-1],stk[r],get(stk[r],stk[r-1])); --r; } if(f^stk 阅读全文
posted @ 2020-12-19 23:08 肆之月 阅读(101) 评论(0) 推荐(0) 编辑
摘要: CF-E. Messenger Simulator Polycarp is a frequent user of the very popular messenger. He's chatting with his friends all the time. He has n friends, nu 阅读全文
posted @ 2020-12-19 23:07 肆之月 阅读(144) 评论(0) 推荐(0) 编辑
摘要: D. Domino for Young You are given a Young diagram. Given diagram is a histogram with n columns of lengths \(a_1,a_2,…,a_n (a_1≥a_2≥…≥a_n≥1).\) Young d 阅读全文
posted @ 2020-12-19 23:05 肆之月 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 星球大战 有一棵树。每次可以攻击树上的某棵子树,然后这棵子树上的每条边有$\frac{1}{2}$的概率消失。定义 若攻击以x为根的子树,深度ht(x)为x子树剩余点(与x连通)的最大深度。共q次操作,两种: 1 x.新建一个节点,其父节点为x。2 x.询问若攻击以x为根的子树,x子树的期望深度。 阅读全文
posted @ 2020-12-19 23:04 肆之月 阅读(79) 评论(0) 推荐(0) 编辑
摘要: Team Work You have a team of N people. For a particular task, you can pick any non-empty subset of people. The cost of having x people for the task is 阅读全文
posted @ 2020-12-19 23:02 肆之月 阅读(547) 评论(0) 推荐(0) 编辑
摘要: C. Berry Jam Karlsson has recently discovered a huge stock of berry jam jars in the basement of the house. More specifically, there were 2n jars of st 阅读全文
posted @ 2020-12-19 23:01 肆之月 阅读(87) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; char buf[1<<20],*_=buf,*__=buf; #define gc() (_==__&&(__=(_=buf)+fread(buf,1,1<<20,stdin),_==__)?EOF:*_++ 阅读全文
posted @ 2020-12-19 22:59 肆之月 阅读(98) 评论(0) 推荐(0) 编辑
摘要: cdq分治可以很好地处理平面点对间具有某种性质的值或数量,最近点对也不例外。 参考OI Wiki 先对x排序,cdq返回点集内部最近点对的距离记为mindis。 考虑如何合并左右区间,对于处于点集A的点a和B的点b,显然 \(|a.x-b.x|<=mindis\) 设a,b属于C,找到C后,对于点p 阅读全文
posted @ 2020-12-19 22:56 肆之月 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 首先,如果有某序列$a_i$,则$\sum_^n|a_i-k|$取最小值时,k为$a_i$的中位数。(因为如果是pos,则pos向靠近中位数的位置移动能更小),这个性质也能dp 有n个人站成一排,每个人有$a_i$张纸牌,求最小移动次数使得每个人纸牌数一样,一张纸牌交给旁边的人记为一次移动。 如果t 阅读全文
posted @ 2020-12-19 22:55 肆之月 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 可求解多维偏序问题 三维偏序(陌上花开) 有 nn 个元素,第 ii 个元素有 \(a_i\)、\(b_i\) 、\(c_i\) 三个属性,设 $f(i)$表示满足$a_j \leq a_i$且 \(b_j \leq b_i\) 且 $c_j \leq c_i$的 j 的数量。 对于 \(d \in 阅读全文
posted @ 2020-12-19 22:54 肆之月 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 费解的开关 你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这 阅读全文
posted @ 2020-12-19 22:53 肆之月 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 斐波那契 \(f_1+f_2+\dots+f_n=f_{n+2}−1\) \(f_1^2+f_2^2+\dots+f_n^2=f_{n}⋅f_{n+1}\) \(f_1+f_3+f_5+\dots+f_{2n−1}=f2n\) \(f_2+f_4+f_6+\dots+f_{2n}=f_{2n+1}− 阅读全文
posted @ 2020-12-19 22:50 肆之月 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 静态主席树 #include<bits/stdc++.h> using namespace std; #define mid ((l+r)>>1) const int MAXN=10; int n,m,a[MAXN],b[MAXN],N; //a为原数组,b为离散后的数组,N为离散后的个数 int 阅读全文
posted @ 2020-12-19 22:49 肆之月 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 伸展树 多值版 #include<bits/stdc++.h> using namespace std; template<class T> inline bool read(T &x){ x=0;register char c=getchar();register bool f=0; while( 阅读全文
posted @ 2020-12-19 22:48 肆之月 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 树剖版lca 树剖自带lca #include<bits/stdc++.h> using namespace std; template<class T>inline bool read(T &x){ x=0;register char c=getchar(); while(!isdigit(c)) 阅读全文
posted @ 2020-12-19 22:47 肆之月 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 树链剖分(点) 解决: 将两个节点之间的简单路径上的点的权值加上v 求两个节点之间的简单路径上的点的权值之和 以某一节点为根节点的子树内所有的点的权值加上v 求某一节点为根节点的子树内所有的点的权值之和 思想: 将数划分成若干链,用线段树或者树状数组对这些链进行操作 重儿子:对于非叶子节点x,以x的 阅读全文
posted @ 2020-12-19 22:45 肆之月 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 解决图中: 任意两节点(可以不连通)找到x<->y路径中边权的最小的最大值,反之亦然(也可以用树剖写) 给定起点,经过的路径边权有某限制下的(如小于等于某值)点权第k小(大),需要主席树。 对于1: 看着像二分。。 对原图边权排序,生成树是直接并查集merge x,y两个节点,重构树的话会新生成一个 阅读全文
posted @ 2020-12-19 22:39 肆之月 阅读(67) 评论(0) 推荐(0) 编辑