贪心
Winterfell30
这个作者很懒,什么都没留下…
展开
-
Codeforces 673D Bear and Two Paths (贪心构造)
题意给出n个点,给出a,b,c,d,求能不能用少于m的边构成两条欧拉路 一条从a开始到b一条从c开始到d。思路因为m只有上限没有下限,我们贪心的构造就可以了,也就是说除了a,b,c,d其他的点都用相同的路径,这样就能使得路径最少了。 需要注意的是n等于4的时候。代码#include <stdio.h>#include <string.h>#include <iostream>#includ原创 2016-05-08 19:28:18 · 678 阅读 · 0 评论 -
Codeforces 675C Money Transfers (扫描)
题意每个银行都有都有一个需求,有的是正数有的是负数。 要求到最后通过数字转移全部银行都变成0,求最小移动步数。思路首先把他看成一个环来考虑,每次转移都要经过全部的有需求的银行,那么显然我们可以找到一个不用走的区间也就是中间全部为0的区间,让这个区间的结尾作为转移资金的开头,循环一遍到这个区间的开头。 预处理一下前缀和,然后再枚举一遍找到最大就可以了。代码#include <stdio.h>#i原创 2016-05-17 14:35:49 · 794 阅读 · 0 评论 -
HDOJ 5676 ztr loves lucky numbers (贪心+数位DP)
题意定义幸运数为只包含4和7并且4和7数量相等的数,给一个小于1e18的数,求大于这个数的第一个幸运数。思路思路一:实际上可以先打表dfs出所有的小于1e18的幸运数,然后每次输入n之后二分找就可以了,复杂度2^18,但是我想万一这个幸运数大于1e18不是不大好处理么,于是我就跑去贪心了(强行作死)。。。其实大于1e18只有一种情况,也就是大于777777777444444444LL(18位),这样原创 2016-05-02 13:37:09 · 522 阅读 · 0 评论 -
Codeforces 672C Recycling Bottles (YY)
题意给出两个人的初始位置和垃圾桶的位置。 然后要把n个不同位置的瓶子一一放到垃圾桶求要走的最小距离。思路因为每次只能放一个瓶子,所以显然除了拿的第一个瓶子以外其他的都要走它和垃圾桶的距离二倍。也就是每个人的最小距离的公式就是所有的瓶子和垃圾桶的距离和的二倍减去某一个瓶子和人的距离及其和垃圾桶的距离的差值,对每个瓶子每个人维护一下差值然后使其尽量大就行了。 因为智障直接排除掉了有一个人不动的情况没原创 2016-05-13 01:14:08 · 682 阅读 · 0 评论 -
Codeforces 571B Minimization (DP)
题意有一个n个数的序列,给出一个k,可以通过对序列重排让∑n−ki=1|Ai−Ai+k|\sum_{i=1}^{n-k}|A_{i}-A_{i+k}|最小,求最小值。思路题目相当于分成k组,使得{0,k,2k…},{1,k+1,2k+1…}等这些序列分别的序列更小。 显然对于每一个链就是排序之后得到的绝对值的和最小,通过列项相消就能得到对于序列i他的结果就maxi−minimax_i-min_i原创 2016-06-17 15:04:03 · 461 阅读 · 0 评论