摘要: 题目链接 "CF321E" 题解 题意:将$n$个人分成$K$段,每段的人两两之间产生代价,求最小代价和 容易设$f[k][i]$表示前$i$个人分成$k$段的最小代价和 设$val(i,j)$为$i$到$j$两两之间产生的代价和,容易发现就是一个矩形,可以预处理前缀和$O(1)$计算 那么有 $$ 阅读全文
posted @ 2018-06-28 15:58 Mychael 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ2079" 题解 题意就是黑白染色,要求相邻点存在不同颜色的点 显然从一个点出发,相邻点如果没有染色,染不同颜色,那么一个联通块一定会满足要求 证明:在$dfs$树上,每个点父亲和它不同色 所以只需检查有无孤立的点 C++ include include include incl 阅读全文
posted @ 2018-06-28 12:28 Mychael 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ3522" 题解 就是询问每个点来自不同子树离它等距的三个点的个数 数据支持$O(n^2)$,可以对每个距离分开做 设$f[i][j]$表示$i$的子树中到$i$距离为$j$的点的个数 利用换根法可得到每个点作为根时的值 然后随便容斥一下就是答案 C++ include incl 阅读全文
posted @ 2018-06-28 11:57 Mychael 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ2802" 题解 这样的问题通常逆序贪心 每个$A[i]$只能用来满足后面的$B[i]$ 就用当前$A[i]$不断提供给最小的$B[i]$即可 用一个堆维护 阅读全文
posted @ 2018-06-28 09:55 Mychael 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ" 题解 如果我们给$A$中所有字母按顺序编号,给$B$中所有字母编上相同的号码 对于$B$中同一种,显然号码应该升序 然后求逆序对即可 C++ include include include include include include include define Redg 阅读全文
posted @ 2018-06-28 08:57 Mychael 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "uoj" 题解 以前看别人博客,在考场上用费用流做,一直以为这题是毒瘤网络流题 没想到竟然是贪心模拟题。。。 如果只有一个蔬菜呢?这就是一个经典的普及难度的贪心,正着推面临优先选择的困难,而逆着推由于不存在淘汰,所以可以贪心选最大的 首先$s_i$的限制很容易处理,只需将每一个蔬菜分出一 阅读全文
posted @ 2018-06-28 08:16 Mychael 阅读(661) 评论(0) 推荐(0) 编辑