摘要: $Luogu$ $Sol$ 首先当然是构建一棵最大生成树,然后对于一辆货车的起点和终点倍增跑$lca$更新答案就好.记得预处理倍增的时候不仅要处理走了$2^i$步后是那个点,还有这中间经过的路径权值的最小值以便之后统计答案. 再一看发现这题并没说给的图是联通的,也就是说跑了最大生成树之后可能有若干棵 阅读全文
posted @ 2019-10-03 14:50 DTTTTTTT 阅读(112) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 贪心.尽量把怨气值大的罪犯放到两个监狱,所以首先要按照怨气值从大到小排序.当扫描到两个罪犯已经被指定到同一个监狱时,就结束循环,这个怨气值就是答案.当然把怨气值大的两个罪犯放到两个监狱是不能乱放的,这样的反例非常好举.比如两对罪犯$a1,a2,b1,b2$,随便放之后是$ 阅读全文
posted @ 2019-10-03 14:50 DTTTTTTT 阅读(161) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Description$ 给定等长的$a,b$两个序列.每次可以交换一个序列中相邻两个数.求最小的交换次数使得$\sum(a_i-b_i)^2$最小. $Sol$ 交换后的序列一定满足$a$序列中第$i$大的数和$b$序列中第$i$大的数对应.证明挺显然的就不说了,洛谷里的题解一定 阅读全文
posted @ 2019-10-03 14:49 DTTTTTTT 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 传送门 $Sol$ 最暴力的做法就是枚举最长链上的边,然后再算一次所有的链长,更新$ans$. 这里要求最大的最小,容易想到二分答案.对于二分的值$mid$,扫一遍所有的链,若链长小于等于$mid$,那么是合法的不需要处理的.否则,就记录链上所有的边经过的次数$+1$.最后找到被经过次数等于链长大于 阅读全文
posted @ 2019-10-03 14:49 DTTTTTTT 阅读(98) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 枚举解+秦九韶公式计算+取模. $Code$ #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> #define il inline #defi 阅读全文
posted @ 2019-10-03 14:49 DTTTTTTT 阅读(87) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 首先$W$一定是某个$w_i$.于是一种暴力方法就出炉了,枚举$W$再计算. 注意到,满足$S-Y$的绝对值最小的$Y$只可能是两种,一种是$<S$的最大的$Y$,一种是$>S$的最小的$Y$.那就分别求出来叭.分别求的时候这个$W$的值是可以二分的.但是这样并不能$A$ 阅读全文
posted @ 2019-10-03 14:49 DTTTTTTT 阅读(113) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 和$Poj1037\ A\ Decorative\ Fence$好像吖. $f[i][0/1]$表示前$i$个数,且选了第$i$个数,这个数相对于上一个数是下降(上升)的,这样的序列的最大长度. $f[i][0]=max(f[k][1])+1,k<i且h[k]>h[i]$ 阅读全文
posted @ 2019-10-03 14:48 DTTTTTTT 阅读(170) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 暴力十分显然叭.正解不是很好想. 我最开始想维护所有色调的客栈的前缀和后缀,然后每扫到一个最低消费合法的就统计一次答案.但是这样会重复计数,两个合法客栈之间有几个消费合法的客栈它们就会被算几次.既然喝咖啡的客栈不能作为计数的基准点,那就换一个叭.换成前一个住宿的客栈或后一 阅读全文
posted @ 2019-10-03 14:48 DTTTTTTT 阅读(69) 评论(0) 推荐(0) 编辑
摘要: $Luogu$ $Sol$ 区间整体加减? 差分+树状数组维护前缀和! 那每给一个人借完教室之后都要判断一下现在合不合法?那复杂度比暴力还不如些... 注意到这里的单调性,假设给前$x$个人借完教室之后就不合法了,那给前$x+1,x+2.....$个人借教室一定也是不合法的.于是可以二分第一个需要修 阅读全文
posted @ 2019-10-03 14:48 DTTTTTTT 阅读(133) 评论(0) 推荐(0) 编辑