摘要: 首先每个学校的边界范围是$1e9$,肯定不能直接$dp[i][j]$表示前i所学校,第$i$所学校派出$j$艘船,但$b using namespace std; typedef int sign; typedef long long ll; define For(i,a,b) for(regist 阅读全文
posted @ 2018-04-19 21:02 dyx_diversion 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 本篇小结大部分都是广义容斥原理,你可以看看这篇 "容斥原理小结" , "shadow" ; bzoj3622 考虑糖果比药片大的对数比药片比糖果大的对数不太好考虑,我们先只考虑糖果比药片多的对数 显然先排序,对每个糖果处理一个$num$表示有$num$个药片它小,设$dp[i][j]$表示考虑前i个 阅读全文
posted @ 2018-04-13 10:21 dyx_diversion 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一道点分难题 首先很自然的想法就是每种颜色的贡献可以分开计算,然后如果你会虚树就可以直接做了 点分也差不多,考虑每个分治重心的子树对它的贡献以及它对它子树的贡献 首先,处理一个$cnt$数组,$cnt[i]$表示从重心出发有多少条包含i颜色的路径,具体做法就是dfs,当该颜色第一次出现时就加上当前子 阅读全文
posted @ 2018-04-12 11:30 dyx_diversion 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 一道神题,对拍狂该了两个小时,终于过了,常数还巨大 首先答案最优肯定是车和加油站都排好须一一对应,现在我们将所有的有用坐标离散化,考虑维护每一段距离对答案的贡献 我们发现,如果把车设成1,加油站设成 1,放在其所在的位置上,累一遍前缀和,那么每个位置上的数值就是现在失配的车或加油站,那么贡献为其绝对 阅读全文
posted @ 2018-04-09 18:41 dyx_diversion 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 考虑优化贪心,不回溯,对于每一位,你都判一下放0的话后面是否有解,用网络流判是否可以完美匹配就行了。 但这样时间复杂是错的,所以不必每次都重新建图,现在原来的图中看一下该行列是否已经匹配,若没有,则强制该行列匹配,重新建图,看是否完美匹配即可 时间复杂度好像是错的?首先,随着你点放的点越来越多,你的 阅读全文
posted @ 2018-03-29 17:26 dyx_diversion 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根、内部结点和叶子均可)着以黑色或白色。你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身)。 对于每个叶结点u,定义c[u]为从根结点从U的简单路径上最后一个 阅读全文
posted @ 2018-01-26 23:17 dyx_diversion 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 贼难的一道题 虽然算法都不难,但组合起来就是想不到 首先,最简单的一步,对所有大佬,嘲讽你减的自信值和你做水题回复自信值都是不变的,写个$dp$,设$dp[i][j]$表示第$i$天自信值为$j$可以有多少天不刷题,这便是你最多可以用的天数 现在你的任务便是在这么多天怼死大佬 考虑到与大佬对怼最多两 阅读全文
posted @ 2018-01-26 23:02 dyx_diversion 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 礼物 这估计是最水,最无脑的一道题了 首先发现总和最接近时答案最小 发现答案就是$(\sum_{i=1}^{n}a[i]^2+b[i]^2) 2 max(\sum_{i=1}^{n}a[i] b[i+j])(0 using namespace std; typedef int sign; typed 阅读全文
posted @ 2018-01-26 23:01 dyx_diversion 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 单旋 这道题做法贼多,LCT,splay,线段树什么的貌似都行。 像我这种渣渣只会线段树了(~~高级数据结构学了也不会用~~)。 首先离线所有操作,因为不会有两个点值重复,所以直接离散。 一颗线段树来维护所有点的深度,并将所有值丢进$set$中。 插入操作,在set找到前驱后继,前驱没有右儿子就放前 阅读全文
posted @ 2018-01-26 23:00 dyx_diversion 阅读(166) 评论(0) 推荐(0) 编辑
摘要: JXOI2017颜色 首先记录每个位置上颜色在序列中上次出现的位置 开两颗线段树,第一棵维护区间最大值,实际上是维护当前必须被删去的颜色的位置的最大值,第二棵则是维护区间和 首先倒着扫一遍,对于当前颜色的后面一个颜色,将其删去,那他的$pre$肯定也要删去,将其$pre$的位置加入第一棵线段树,对每 阅读全文
posted @ 2018-01-24 10:25 dyx_diversion 阅读(283) 评论(0) 推荐(0) 编辑