11 2019 档案
摘要:"传送门" 感觉最近写代码的状态有点迷...还好这次最后两分钟过了D,不然就掉分了QAQ。 A. Heating 签到。 Code B. Obtain Two Zeroes 分情况,列一下方程找关系即可。 Code C. Infinite Fence 题意: 现在有无穷多个砖块排成一行,现在从$0$
阅读全文
摘要:"传送门" 题意: 给出$n$个重要点,还有其余$m$个点,$p$条边。 现在要在这$n+m$个点中挖几口水井,每个地方的费用为$w_i$。连接边也有费用。 问使得这$n$个地点都有水井(或直接、间接与水井相连)的最小代价。 思路: 有点巧妙。。建立一个虚点连向所有点,边权为$w_i$。然后直接求以
阅读全文
摘要:"题目链接" 题意: 给出$n$个点,$m$条边,同时给出$p$个重要的点以及对应特征。 现在要选出一些边,问使得这$p$个所有特征相同的点相连,问最小代价。 思路: 斯坦纳树的应用场景一般就为:使得一些点连通,在此基础上,允许连接一些其它的点,加入一些其它的边。可以说最小生成树是斯坦纳树的一个特例
阅读全文
摘要:"传送门" 题意: 给出一颗以$1$为根的有根树,初始所有结点的颜色为$1$。 之后有两个操作,一种是每次将距离$a$结点距离不超过$l$的所有儿子结点颜色染为$c$;另一种是询问结点$a$的颜色。 现在就要回答第二个操作。 思路: 我们先求出树的$dfs$序,那么显然每个点可以用$(dfn[i],
阅读全文
摘要:"传送门" 题意: 给出一个$n n$的棋盘,现在有两种操作:一种是某个格子里的数字加上$A$,另一种是询问矩阵和。 空间限制:$20MB$,强制在线。 思路: 直接$kd tree$来搞,复杂度是$O(n\sqrt{n})$的。 但这个题丧心病狂,卡空间不说,还卡时间。 我就是因为一开始结构体里面
阅读全文
摘要:"bzoj" 题意: 给出$n$个点,对于每个点,$d_i$等于距离其最远的点的距离减去距离最近的点的距离。这里的距离为曼哈顿距离。 求$min\{d_i\}$。 思路: 考虑直接对每个点暴力枚举,然后在$kd tree$上找最远点和最近点。 最好复杂度$O(nlogn)$,但最差复杂度为$O(n^
阅读全文
摘要:"传送门" 题意: 二维平面上有若干个点。 现在要维护一种数据结构,支持插入一个点以及询问其余点到某个点的最小曼哈顿距离。 思路: 这是个$kdtree$模板题。 $kdtree$是一种可以 高效处理$k$维空间信息 的结构。一般我们遇到的是$2$维空间或者$3$维空间。 一般用来解决的问题为:空间
阅读全文
摘要:传送门 题意: 求 \[ \sum_{i=1}^{n}i^d[gcd(i,n)=1] \] 思路: 我们对上面的式子进行变换,有: \[ \begin{aligned} &\sum_{i=1}^{n}i[gcd(i,n)=1]\\ =&\sum_{i=1}^{n}i\sum_{x|gcd(i,n)}
阅读全文
摘要:"bzoj" 题意: 有$n$位同学,$m$门课。 一位同学在第$i$门课上面获得的分数上限为$u_i$。 定义同学$A$碾压同学$B$为每一课$A$同学的成绩都不低于$B$同学。 现在知道一个同学碾压了$k$个人,同时已知其各个科目的排名$r_i$,问有多少种情况满足这个说法。 思路: 考虑按照每
阅读全文
摘要:"传送门" 题意: 求$\sum_{i=0}^n\sum_{j=1}^{a+id}\sum_{k=1}^{j}k^K,n,a,d\leq 10^9,K\leq 100$。 思路: 最右边这个和式为一个最高项次数为$k+1$的多项式; 中间这个和式加上右边的和式就是一个最高项次数为$k+2$的多项式;
阅读全文
摘要:"传送门" A. Changing Volume 签到。 Code B. Fridge Lockers 形成环后贪心即可。 Code C. League of Leesins 确定两个数后第三个也就确定了。 所以$map$乱搞一下。 Code D. Feeding Chicken 模拟题。蛇形填数即
阅读全文
摘要:"bzoj" 题意: 给出$n$,现在要生成这$n$个数,每个数有一个值域$[1,A]$。同时要求这$n$个数两两不相同。 问一共有多少种方案。 思路: 因为$A$很大,同时随着值域的不断增加,感觉最终的答案像个多项式,又因为$0\leq A\leq n$时的答案很显然。。所以猜一发这是一个最高项次
阅读全文
摘要:"传送门" 题意: 给出一颗树,每个结点有取值范围$[1,D]$。 现在有限制条件:对于一个子树,根节点的取值要大于等于子数内各结点的取值。 问有多少种取值方案。 思路: 手画一下发现,对于一颗大小为$sz$的数,最终的答案为一个$sz+1$次为最高次幂的多项式。 因为节点数$n\leq 3000$
阅读全文
摘要:"传送门" A Circle 签到。 B Echo 签到到。 C Average Length 要卡下精度,可用二分或者long double来搞。 Code cpp / Author: heyuhhh Created Time: 2019/11/16 20:26:13 / include defi
阅读全文
摘要:"传送门" A. Single Push 直接乱搞即可。 Code B. Silly Mistake 贪心分组即可。 用一个$map$记录当前组一个人是否已经来过。 至于为什么用$map$,方便清零= = Code C. Sweets Eating 顺序没关系,排序后贪心分组即可。 公式推一推就行。
阅读全文
摘要:"传送门" 题意: 给出一颗含有$n$个结点的无根树,之后给出一个长度为$m$的序列,每个元素在$[1,n]$之间。 现在序列中每个长度为偶数的区间的完成时间定义为树上最小配对方法中每对匹配点间距离的总和。 现在要求所有长度为偶数的区间的完成时间的和。 思路: 首先不妨将这颗树转化为有根树,最终不会
阅读全文
摘要:"传送门" 题意: 给出一颗以$1$为根的有根树,树边带有一个字符($a$~$v$)的信息。 输出对于每个结点,其子树内最长的简单路径并且满足边上的字符能够组成回文串。 思路: 显然最终的答案分为两部分,子树内部的答案,经过当前根结点的答案。 第一种答案很好处理。类似于点分治,主要处理第二种答案。
阅读全文
摘要:"传送门" 题意: 给出一个以$1$为根的有根树,起始每个结点都为$0$,现在有三种操作: 1.将$v$及$v$的子树都置为$1$; 2.将$v$及其所有的祖先都置为$0$; 3.询问$v$目前处于何种状态。 对于每次询问给出回答。 思路: 对于$1$操作,子树修改,显然$dfs$序+线段树即可解决
阅读全文
摘要:"传送门" 题意: 求子树众数。 思路: $dsu\ on\ tree$模板题,用一个桶记录即可。 感觉$dsu\ on\ tree$这个算法的涉及真是巧妙呀,保留重链的信息,不断暴力轻边,并且不断在子树内递归下去。又由于轻边数量不会超过$O(logn)$,所以总的时间复杂度控制在$O(nlogn)
阅读全文
摘要:"传送门" 题意: 给出一个以$1$为根的有根树。之后有$m$个询问,每个询问为$v_i,h_i$,需要回答以$v_i$为根的子树中,深度为$h_i$的那些结点所代表的字符能否构成回文串。 思路: 静态子树询问,考虑$dsu\ on\ tree$。 深度可以提前处理出来。对一个子树处理时,用一个数组
阅读全文
摘要:"传送门" 题意: 给出一颗以$1$为根的有根树,每个结点有个颜色$c_i$。 之后要回答$m$组询问,每组询问包含$v_i,k_i$,要回答以$v_i$为根的子树中,颜色出现次数不小于$k_i$的颜色的和。 思路: 这种静态子树上的问题,可以考虑dsu on tree。 由于要回答次数超过$k$的
阅读全文
摘要:"传送门" A. Two Rival Students 签到。 Code B. Magic Stick 分情况讨论一下即可。 ~~神志不清讨论地很乱~~ Code C. Dominated Subarray 题意: 给出$n$个数,找到长度最短的区间,满足区间长度大于$1$且存在一个数其出现次数严格
阅读全文
摘要:"传送门" 简单的dfs+dp即可解决。~~根本不用动态开点~~
阅读全文
摘要:"传送门" 简单的线段树区间修改区间查询,但是因为数据范围过大,所以采用动态开点的方法(注意一下空间问题)。 也可以直接对询问区间的端点离散化然后建树,这种方法时间复杂度和空间复杂度都比较优秀。 给出动态开点的代码:
阅读全文
摘要:"传送门" 题意: 坐标轴上有$n$个机器人,每个机器人带有属性$x,r,q$,分别表示位置、可视半径以及智商。 现在定义智商相近为两个机器人的智商差的绝对值不超过$K。 现在问有多少对机器人,他们在互相的可视范围内并且智商相近。 思路: ~~一开始没注意到互相在对面的可视范围内,以为是主席树模板题
阅读全文
摘要:"洛谷" 题意: 给出一个$n m$的矩阵$A$。现要从中选出$n$个数,任意两个数不能在同一行或者同一列。 现在问选出的$n$个数中第$k$大的数的最小值是多少。 思路: 显然二分一下答案,然后找出所有不超过二分答案的边求最大匹配,判断一下是否小于$n k+1$即可。
阅读全文
摘要:"传送门" 题意: 现有一个$0$到$n 1$的排列$T$,定义距离$D(x,y)=min\{|x y|,N |x y|\}$。 现在给出$D(i, T_i)$,输出字典序最小的符合条件的排列$T$。 思路: 将问题转化为二分图匹配,左边的点表示位置,右边的点表示值。 那么现在就是要找一个使得最终字
阅读全文
摘要:"传送门" 题意: 给出一个$n m$的棋盘,上面有若干个黑色棋子,若干个白色棋子,还有一个空格。 每次先手选择一个空格,将它与相邻的某个白色棋子交换;后手则选择一个空格,与相邻的某个黑色棋子交换。 最终不能移动的人输。 现在给出一个棋盘以及游戏过程,最终的结果为先手输掉比赛。请你输出先手在这次比赛
阅读全文
摘要:"BZOJ" 题意: 给出一个$n m$的网格,其中有一些障碍点。 现在两个人玩游戏,首先先手选定一个点,然后从后手开始轮流移动,不能移动者即输掉这次游戏。 规定不能移动到那些之前已经到过的格子上。 思路: 网格图可以联想到二分图,我们可以对其进行黑白染色。 注意如果先手必赢的话,直到终点只会走偶数
阅读全文
摘要:"洛谷" 题意: 给出一个$DAG$,现在要选出$n+1$条可相交的链来覆盖,最终使得未被覆盖的点集中,权值最小的点的权值最大。 思路: 显然最终的答案具有单调性,故直接二分答案来判断; 直接将小于二分权值的点加入图中,求出最小链覆盖即可。 这个题貌似有点卡常。。二分上界设为INF直接T飞了。。
阅读全文
摘要:"传送门" 题意: 现在有$n$堆石子,每堆石子有$a_i$个。 之后会有$m$次,每次选择$[l,r]$的石子堆中的石子扔$k$个,若不足,则尽量扔。 现在输出$1$~$m$次,每次最多能取到多少石子(输出第$i$次的情况时,要考虑前$i 1$次)。 给出的区间不存在包含关系。 思路: 稍微暴力点
阅读全文
摘要:"传送门" 题意: 给出一个长度为$L$的环,标号从$0$到$L 1$。 之后给出$n$个新郎,$n$个新娘离起点的距离。 现在新郎、新娘要一一配对,但显然每一对新人的产生都会走一定的距离$d_i$,求所有$d_i$中最大值最小是多少。 思路: 显然最后的答案具有单调性,故可以二分答案之后来判定。
阅读全文
摘要:"传送门" A. Payment Without Change 签到。 Code B. Minimize the Permutation 题意: 给出一个$1$~$n$的排列,现在对于一个位置$i$,可以交换$a_i,a_{i+1}$。但要满足每个位置只能交换一次且最多交换$n 1$次。 输出操作过
阅读全文
摘要:"传送门" A Easy $h$ index 签到。 Code cpp / Author: heyuhhh Created Time: 2019/11/3 11:29:12 / include define MP make_pair define fi first define se second
阅读全文