03 2018 档案
摘要:【题解】 最短路计数的模板题吧。。要把重边判掉。。 1 #include<cstdio> 2 #include<algorithm> 3 #define N 2010 4 #define rg register 5 using namespace std; 6 int n,m,tot=0,dis[N
阅读全文
摘要:【题解】 扫描线+线段树。 我们记第i部电影上次出现的位置是$pre[i]$,我们从$1$到$n$扫描,每次区间$(pre[i],i]$加上第i部电影的贡献$w[f[i]]$,区间$[pre[pre[i]],pre[i]]$减去第i部电影的贡献$w[f[i]]$. 1 #include<cstdio
阅读全文
摘要:·求1到n的严格次短路。 【题解】 dijktra魔改?允许多次入队,改了次短路的值也要入队。 1 #include<cstdio> 2 #include<algorithm> 3 #define M 200010 4 #define N 5010 5 #define rg register 6 u
阅读全文
摘要:【题解】 活捉水题一只。。。 RMQ问题,ST表即可。区间最大最小各求一遍。 1 #include<cstdio> 2 #include<algorithm> 3 #include<cmath> 4 #define N 200010 5 #define rg register 6 using nam
阅读全文
摘要:【题解】 为了让某个选手能够获得总分第一,就让他最后一天的得分是n,并且让别的选手的得分的最大值尽量小。于是我们先把目前积分排序,并且让他们最后一天的排名刚好与积分排名相反。即某个积分排名为X的人最后一天排名为n-X+1. 然后我们在里面找出最高总分mx。 接着依次枚举每个人,如果他的积分加上n≥m
阅读全文
摘要:【题解】 题目要求找到一个集合点,使3个给定的点到这个集合点的距离和最小,输出集合点的编号以及距离。 设三个点为A,B,C;那么我们可以得到Dis=dep[A]+dep[B]+dep[C]-dep[Lca]-dep[Lca2]*2;其中Lca是A,B的最近公共祖先;Lca2是Lca与C的最近公共祖先
阅读全文
摘要:【题解】 手残写错调了好久QAQ...... 洛谷的数据似乎比较水。。 n个正整数!!这很重要 这道题是个类似two pointer的思想,外加一个单调队列维护当前区间内长度为d的子序列中元素之和的最大值。 枚举右端点,如果左端点到右端点的元素和减去区间内长为d的子序列中元素和的最大值,大于给定的P
阅读全文
摘要:【题解】 树链剖分模板题。。
阅读全文
摘要:【题解】 权值线段树。查询当前牌堆顶的牌并且删掉就好了。
阅读全文
摘要:【题解】 线段覆盖问题。线段树或者并查集都可以。不离散化居然能过?
阅读全文
摘要:【题意概述】 给出一个[0,1,000,000,000]的整数数轴,刚开始每个位置都为0,有n个区间加操作,最后询问数轴上最大的数是多少。 【题解】 我写的是离散化后线段树维护区间最值。 其实貌似不用线段树QAQ...
阅读全文
摘要:【题意】 给出一棵树。现在可以在树中删去m条边,使它变成m+1棵树。要求最小化树的直径的最大值。 【题解】 二分答案。$Check$的时候用$DP$,记录当前节点每个儿子的直径$v[i]$,如果$v[i]+1>mid$,那么就断掉连向儿子的这条边。如果$v[i]+v[j]+2>mid$,那么在i与j
阅读全文
摘要:【题解】 离散化+Two Pointer. 离散化的时候有些特殊姿势。
阅读全文
摘要:【题解】 题意没说明白。。其实字典序是指在序列中的位置而不是指a[i]的值。。一开始理解错了,想了好久QAQ 其实就是求出f[i]表示以i为开头的最长上升子序列的长度,然后对于每个询问,O(n)扫一遍贪心地判断就好了。
阅读全文
摘要:【题解】 需要用到裴蜀定理。 k个瓶子能倒出的燃料的最小值是这k个瓶子的容量的gcd. 那么原问题转化为在n个数中找到k个数使得它们的gcd最大。因为n的范围很小,所以对每个数求出所有因数并排序,最后找出现次数大于等于k的因数就是答案了。
阅读全文
摘要:【题解】 $i$在$1-->n$的范围内是$n/i$个数的约数。
阅读全文
摘要:【题解】 因为本题数据范围实在是很小,所以直接写了大暴力。
阅读全文
摘要:【题解】 二分图匹配。 左边的点是属性值,右边的点是装备。把装备与其对应的两个属性值连边,然后从小到大枚举属性值跑二分图匹配,当无法匹配的时候推出。答案就是当前的属性值-1.
阅读全文
摘要:【题解】 明显是道数学题。 需要在草稿纸上写写画画,在这里我只写一些结论。 首先我们可以发现,当k恒定时,不管n增加到多大,第k层的最少段数都是不变的。因为我们必定可以找到一种加入一条新的直线的方式,使得这条直线与之前的n条直线的n个交点中,n-1个在第k层的上方,1个在第k层上,且使得原来第k层最
阅读全文