4.贪心
35point5
这个作者很懒,什么都没留下…
展开
-
WZOJ 1302 tree(贪心)
题意: 给你一棵树,每个点有一个权值w[i]w[i]w[i],要求按拓扑序依次删除一个点,若一个点是第kkk个被删除,则需付出k∗w[i]k∗w[i]k*w[i]的代价,求删除所有点的最小总代价. 题解: 我们可以这样理解权值:把一个点延迟一个单位时间删除所需额外付出的代价,或是把一个点提前一个单位时间删除所减少的代价. 先不考虑拓扑序的限制,那么显然将所有点按权值从大到小排序再依次删除是...原创 2018-03-07 14:03:58 · 262 阅读 · 0 评论 -
BZOJ 5108 [CodePlus2017]可做题
题面 题解: 显然每个数的二进制位是互不影响的,所以可以每位拆开做. 考虑每一段连续1前面的第一个0,根据该串前缀异或和中0和1的个数考虑是否取反该0. 而每段连续1后面的连续零长度若大于1,则该位取该串1的前缀异或和的值,可以使得除最后一位外均为0,若连续零长度等于1则可以不管,根据下一串连续1来确定该位取值. Code...原创 2018-03-04 19:41:26 · 185 阅读 · 0 评论 -
Codeforces 3D Least Cost Bracket Sequence
题面 题意: 给你一个括号序列,其中某些位置不确定,给你每个不确定位置上填0和填1的代价ai,biai,bia_i,b_i,求使得括号序列匹配的最小代价和. 题解: 考虑将(用1代替,)用-1代替. 先不考虑括号序列匹配的限制,先考虑序列总和为0. 显然我们可以先把不确定的位置赋为-1,再挑选ai−biai−bia_i-b_i最小的若干个-1将其改为1. 再考虑加入括号序列匹配的限制...原创 2018-03-04 13:56:07 · 173 阅读 · 0 评论 -
Codeforces 713C Sonya and Problem Wihtout a Legend
题面 题意:给你一个序列,每次可以花费一个代价使一个数+1或者-1,求使其严格上升的最小代价. 题解: 首先考虑使其不下降的情况. 逐位考虑答案,假设前iii个已经不下降,而ai+1<aiai+1<aia_{i+1}ai−ai+1ai−ai+1a_i-a_{i+1}的代价使其不下降,那么新的ai和ai+1也就是a′i和a′i+1ai和ai+1也就是ai′和ai+1′a_i和a_...原创 2018-03-20 14:50:37 · 147 阅读 · 0 评论 -
CPOJ “或”游戏
题面 显然只让最高位最高的一个数乘最优,然后算出前后缀算一下就可以每一个数O(1)O(1)O(1)算答案了.Code原创 2018-09-02 18:52:19 · 161 阅读 · 0 评论 -
CPOJ 排列变换
题面 每次肯定是选一个不在自己位置上的数连续换换换直到所有经过的位置都满足要求为止 一次换换换可能是这样的: 显然可以把红圈里开倒车的所有数都先换掉,这样显然可以让答案变小,然后剩下来的数都是单调的,再计入答案即可.Code...原创 2018-09-02 19:09:44 · 278 阅读 · 0 评论 -
CPOJ 2018.10.19提高测试 垃圾机器人 (litter)
考虑对每一条路径差分,以此计算每个点iii在每轮中第kkk个捡的贡献:costi,k=(1+4)ai&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;(k=1)costi,k=((k+1)2−k2)ai=(2k+1)ai&ThickSpace;&ThickSpace;&...原创 2018-10-21 20:16:55 · 158 阅读 · 0 评论