ACM 贪心
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
CodeForces 876A Trip For Meal
题目链接:http://codeforces.com/contest/876/problem/A 题意:小熊维尼一天要吃n次饭,有三个吃饭的地点,初始在1号点,1号点去2号点的距离为a,1号去3号的距离为b,2号去3号的距离为c,在一个点吃完一顿以后,只能下次经过的时候才能再吃一顿,现在问你吃n顿走的最小路径长度为多少 解析:如果一天只吃一顿,那么不用走就可以了,如果要吃两顿,去2号点和3号点里原创 2017-10-17 16:21:42 · 631 阅读 · 0 评论 -
hdu6047 Maximum Sequence【贪心+线段树】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6047 题意:给你一个序列a,和一个序列b,让你构造n(an~an+1)个数出来,使得这n个数的和最大,构造出来的数满足ai<={aj-j | bk<=j#include <iostream>#include <cstdio>#include <cstring>#include <string>原创 2017-07-27 21:11:57 · 322 阅读 · 0 评论 -
CodeForces 835B The number on the board
题目链接:http://codeforces.com/contest/835/problem/B 题意:黑板上有一个数,你只知道这个数的每一位的和不小于k,现在有一个人不小心改动了这个数,把这个数变成n了,现在问你这个人从最初的数最少改变了几位数 解析:首先先把n的每一位数求和,如果大于等于k那么就是没有改变,如果小于他,那肯定是从位数最小的数开始改变,然后扫一遍即可#include <bits原创 2017-08-01 21:31:47 · 955 阅读 · 0 评论 -
CodeForces 822C Hacker, pack your bags!
题目链接:http://codeforces.com/contest/822/problem/C 题意:有n个线段,每个线段的长度是r-l+1,选择每一个线段都有花费,现在问你是否有两个不相交的线段加起来长度为x,如果有,请输出他的最小花费,如果没有,那就输出-1 解析:感觉这题和背包有点像,就是有个容量为x的背包,然后装两段东西进来,不过这两段东西不能相交,我的做法是把所有的段按照l进行排序,原创 2017-07-08 14:49:18 · 785 阅读 · 0 评论 -
CodeForces 831C Jury Marks
题目链接:http://codeforces.com/contest/831/problem/C 题意:主角看电视,电视里有k个评委给参赛者打分,每个评委打了ai分,即参赛者的初始分加上这些评委打分,等于一个结果,但是主角不是很记得所有结果,只记得n个结果,即bj(加上若干个ai的结果),现问你他的初始分有多少种可能(注意a按时间顺序给出,b不是按时间顺序给出) 解析:直接枚举可能的初始值,即b原创 2017-07-14 10:11:47 · 842 阅读 · 0 评论 -
CodeForces 828B Black Square
题目链接:http://codeforces.com/contest/828/problem/B 题意:有一个n*m的二维矩阵,其中W代表白色,B代表黑色,让你把一部分白色变成黑色,使得这个二维矩阵里面有一个黑色正方形,输出改变的个数 解析:确定原图中黑的边界,然后判断是否合法,如果合法就拿黑的面积减去黑的个数,否则输出-1#include <bits/stdc++.h>using names原创 2017-07-12 09:46:31 · 570 阅读 · 0 评论 -
CodeForces 813A The Contest
题目链接:http://codeforces.com/contest/813/problem/A 题意:就是有一个人要做n道题,每道题需要花费ai的时间,他做出来的题一定都是正确的,然后他只能在m个时间段里面提交,问你他提交完所有问题的解决的最小时间是多少 解析:题目看懂了就会发现其实很简单,你只要一口气把全部题目做完,然后找一个最近的可以提交的时间段提交就好,如果不存在这个时间就输出-1#in原创 2017-06-06 10:46:18 · 827 阅读 · 0 评论 -
hdu2111 Saving HDU
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2111 题意:中文题(输入可以理解为,物品的单价和物品的总共数量 解析:一共只能拿v个物品,所以从价值最大的开始拿就好,排个序就可以啦#include <bits/stdc++.h>using namespace std;struct node{ int p,m; bool op原创 2017-06-04 22:32:54 · 337 阅读 · 0 评论 -
hdu2037 今年暑假不AC
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037 题意:中文题 解析:贪心水题,按右区间排序从小到大排序,每次拿出一个和前一个的右区间进行比较,合法ans++,并且更新记录#include <bits/stdc++.h>using namespace std;struct node{ int l,r; bool oper原创 2017-06-04 22:18:32 · 311 阅读 · 0 评论 -
CodeForces 754D Fedor and coupons
题目链接:http://codeforces.com/contest/754/problem/D 题意:给你n个优惠券,每个优惠券是一个区间,他能给这个区间的所有商品进行打折,现让你选择k个优惠券,使得能够重复打折的商品最大,让你输出有多少个商品被打折了,并输出你选择的优惠券编号 解析!:其实说白了就是给你n个区间,每个区间会覆盖一个范围,让你选择k个区间,使得你重复覆盖的范围尽可能大,那么我们原创 2017-05-07 12:08:00 · 727 阅读 · 0 评论 -
CodeForces 792A New Bus Route
题目链接:http://codeforces.com/contest/792/problem/A 题意:给你一个长度为n的序列,让你求最小的abs(a[i]-a[j]),并问这个最小差值出现了几次 解析:排个序,最小差值一定产生在邻近的两个元素之间,所以扫一遍,维护一下ans就好了#include <bits/stdc++.h>using namespace std;const int ma原创 2017-05-06 09:17:13 · 785 阅读 · 0 评论 -
UVA11292 Dragon of Loowater
题目链接:https://vjudge.net/problem/UVA-11292 题意:有n只龙,每个龙的能力为x,你有m个勇士,每个勇士的能力为y,你需要雇佣n个勇士去杀这n只龙,每个勇士雇佣费用为y,每个勇士只能被雇佣一次,且只能斩杀能力不超过y的龙,问你要杀掉这些龙的最少花费 解析:先把龙和勇士都排个序,然后从能力小的勇士开始找他能杀的龙,这样的花费就是最小的#include <bits原创 2017-07-28 13:18:04 · 288 阅读 · 0 评论 -
UVA11729 Commando War
题目链接:https://vjudge.net/problem/UVA-11729 题意:有n个士兵,有n个任务,你要给这n个士兵下达任务,每个士兵你需要花费bi的时间下达任务,这个士兵需要花费ji的时间完成,你只有给一个士兵下达完任务以后才能给其他士兵下达任务,问你如何给士兵下达任务,才能使得完成所有任务的时间最小 解析:肯定是优先给完成任务时间长的士兵下达任务,因为下达任务的时间是不可避免的原创 2017-07-28 13:30:43 · 383 阅读 · 0 评论 -
CodeForces 872B Maximum of Maximums of Minimums
题目链接:http://codeforces.com/contest/872/problem/B 题意:给你一个长度为n序列,让你把他准确分为k个子序列,让你求每个子序列的最小后,再求这些最小值中的最大值,输出那个可能的最大的最大值 解析:如果k>=3肯定是直接输出序列的最大值,如果k==1,肯定输出序列的最小值,如果等于0,那么你只需要比较一下第一个和最后一个大小,选择大的那个输出即可,因为你原创 2017-10-17 10:53:48 · 422 阅读 · 0 评论 -
CodeForces 864D Make a Permutation!
题目链接:http://codeforces.com/contest/864/problem/D 题意:给你一个长度为n的数组,问你要替换几个数字,才能使得这个数组变为全排列,并且在改动最小的情况下,字典序最小的全排列 解析:首先,因为保证了,一定在1~n里面,所以重复的数字肯定是要被替换掉的,记录一下,然后替换也是有要求的,肯定是先把小的放上去,反正就这样乱搞一下就可以了#include <b原创 2017-10-13 22:22:54 · 319 阅读 · 0 评论 -
CodeForces 867E Buy Low Sell High
题目链接:http://codeforces.com/contest/867/problem/E 题意:有一只股票,在第i天的价格为pi,现在你每天只可以买进当天的这一股,或者卖出一股,或者什么都不做,现在问你经过你的操作以后,最多能赚多少钱 解析:最基本遵守的肯定是低价买进高价卖出,记录到当前为止的最小的一股的价格,这一股是肯定要卖出的,只是有可能现在不一定是这时候卖出去是最优的,有可能在之后原创 2017-10-11 23:06:28 · 584 阅读 · 0 评论 -
CodeForces 867C Ordering Pizza
题目链接:http://codeforces.com/contest/867/problem/C 题意:有2种披萨,每次预定一份披萨,能把披萨分成S分,有n个人,第i个人要吃si块,吃第一种,每块披萨能增长ai的幸福值,吃第二种披萨,每块能增长bi的幸福值,现在问你能怎样预定披萨,能使得预定的披萨尽可能少,且还能满足所有人的胃口,还使得幸福值尽可能大 解析:首先贪心的来存答案,就是每个人都吃幸福原创 2017-10-11 22:34:05 · 519 阅读 · 0 评论 -
poj2349 Arctic Network
题目链接:http://poj.org/problem?id=2349 题意:有s颗星球,有p个雷达站,如果雷达站在同一个星球上,不需要距离就可以直接通信,如果不在一个星球上,他们之间的距离不能超过D,现在给你p个雷达站的坐标,如果要把这整个雷达站连通,问你最小的D是多少 解析:首先要联通全部雷达站,肯定是最小生成树,然后让你求一个D值,雷达站之间连边,相当于如果距离大于D就不能相连,那么可以先原创 2017-10-03 10:25:37 · 288 阅读 · 0 评论 -
poj1456 Supermarket【优先队列】
题目链接:http://poj.org/problem?id=1456 题意:有一家商场,有n件物品要卖,每件物品,必须在di天前卖出,才能获利pi元,每天只能卖一件商品,问你怎样安排,才能使得获利最大 解析:贪心,从截止日期最大的开始枚举天数,如果大于这个截止日期的就压到优先队列里面,优先队列每次拿出来的是最大价格的,这样来维护答案即可#include <cstdio>#include <c原创 2017-10-09 15:39:57 · 320 阅读 · 0 评论 -
hdu6201 transaction transaction transaction
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:有n座城市,有n-1条道路连接这n个城市,每条道路有长度,,表示这个人从x城市到y城市需要的花费是z元每个城市有一个值,表示在这个城市买书和卖书的价格,有一个人必须从这n个城市里选两个城市出来做生意,现在问你,这个人最多能赚多少钱 解析:我的方法是,类似树的直径的做法,从任意一个点开始b原创 2017-09-12 15:43:47 · 318 阅读 · 0 评论 -
hdu6197 array array array【英文题】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6197 题意:给你一个长度为n的数组,如果能从这个数组里删除k个元素,使得这个数组成为不严格的单调递增序列,或不严格单调递减序列,那么这个数组就是魔法数组,否则就不是 解析:其实看懂了题真的挺好做的,看不懂那就连样例都看不懂了,对于这题,对于递增的情况来说,求他的最长上升子序列的长度,判断他的长度+k原创 2017-09-12 15:32:06 · 382 阅读 · 0 评论 -
hdu6060 RXD and dividing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6060 题意:给你一棵有n个结点的树,让你把他的2~k个节点分成k份,然后求1号顶点到每份里各个顶点的最大权值和,比如说样例,就是分成了{2},{3},{4},{5},到每个顶点的距离即是到这个顶点在原图上到顶点的距离 解析:其实画多几棵树会发现一个问题,就是有些变权是会被多次重复计算的,比如样例,(原创 2017-08-27 14:40:03 · 298 阅读 · 0 评论 -
hdu6119 小小粉丝度度熊【尺取】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 题意:中文题 解析:首先需要能合并的区间都合并了(按L排序后扫一遍),因为题目有明确说明,接着把每个区间之间的差值处理出来,然后尺取做一遍,维护一下答案即可,要注意,剩下的补签卡,可以直接签在已经维护好的那个区间的后面#include <bits/stdc++.h>using namespa原创 2017-08-20 20:05:18 · 414 阅读 · 0 评论 -
CodeForces 762B USB vs. PS/2
题目链接:http://codeforces.com/contest/762/problem/B 题意:现在让你给学校的电脑买设备,设备有两种类型的接口,然后告诉你,只有USB接口的电脑有几台,只有PS/2接口的电脑有几天,两者都有的电脑有几台,让你为尽可能多的电脑配置设备,但是价格要尽可能的便宜,现在告诉你m款设备的价格和类型,让你输出ans和sum,分别表示能给几台电脑配置,和总花费 解析:原创 2017-05-05 19:12:31 · 792 阅读 · 0 评论 -
CodeForces 805C Find Amir
题目链接:http://codeforces.com/contest/805/problem/C 题意:有n个学校,学校的编号是从1到n,从学校i到学校j的花费是(i+j)%(n+1),让你求遍历完所有学校的最小花费 解析:你会发现头尾相加就会使得他等于n+1的,那么他的遍历顺序应该是1->n->2->(n-1)->3->(n-2)……以此类推下去,就会发现最终的总花费就是(n-1)/2#inc原创 2017-05-05 09:28:37 · 1369 阅读 · 0 评论 -
Gym - 100623K Key to Success
题目链接:https://vjudge.net/problem/Gym-100623K 题意:给你n枚硬币,让你往里面添加m枚硬币,使得这n+m枚硬币,能组成1到x的所有的数,且x尽可能的大 解析:这题和广工校赛决赛的最后一题很像,只是多了一个添加操作而已,每次添加都添加当前的sum+1即可,剩下的还是那样维护就好了#include <iostream>#include <cstdio>#i原创 2017-03-31 10:16:54 · 526 阅读 · 0 评论 -
CodeForces 777B Game of Credit Cards【贪心】
题目链接:http://codeforces.com/contest/777/problem/B 题意:给你两个长度为n的字符串s1,s2,两个人比大小,小的算输,输了的要得到flick,问你第二个最少得到多少,第一个最多得到多少 解析:也就是田忌赛马的问题#include <cstdio>#include <cstring>#include <algorithm>#include <cm原创 2017-03-14 15:32:46 · 413 阅读 · 0 评论 -
CodeForces 779C Dishonest Sellers
题目链接:http://codeforces.com/contest/779/problem/C 题意:有n个商品,商品打折后是ai的价格,打折前是bi的价格,那个人想用最少的前买n个商品,但是打折商品至少买k个,问你最少的花的钱是多少 解析:先对bi求和,ci = ai-bi然后对c排序,把前k个ci加进去,然后再把ci剩下的负数加进去#include <cstdio>#include <c原创 2017-03-14 14:04:59 · 464 阅读 · 0 评论 -
CodeForces 780D Innokenty and a Football League【模拟+贪心】
题目链接:http://codeforces.com/contest/780/problem/D 题意:输入一个整数n,接着有n行输入,每行输入s1,s2,每一行有两种队名选择,即(1)取s1的前前个字符,(2)取s1的前两个字符,取s2的第一个字符,问你是否有取出来的每个字符串都不相同 解析:因为题目条件限制的恨死,所以直接模拟就好了,不过要记住s1如果不唯一的话,必须全都选择第二种方案,不能原创 2017-03-13 22:17:50 · 684 阅读 · 0 评论 -
CodeForces 785B Anton and Classes【水题】
题目链接:http://codeforces.com/contest/785/problem/B 题意:给你n个时间段,表示anton学象棋的,m个时间段,表示anton学编程的,让你选择两个时间段使得他们之间的间隔最大,如果间隔小于零则去零 解析:简单贪心,n里面取最大的l和最小的r,m里面也是如此,然后乱搞一下,比较下最大值#include <cstdio>#include <cstrin原创 2017-03-20 21:53:27 · 393 阅读 · 0 评论 -
CodeForces 765C Table Tennis Game 24
题目链接:http://codeforces.com/contest/765/problem/C 题意:有两个选手打乒乓球,告诉你达到k分就算一局结束,比分置零,现在你知道第一个选手总共拿了a分,第二个选手拿了b分,问你他们最大打了几局,如果不合法则输出-1 解析:首先要尽可能的多大,那么肯定是把手头上的分尽可能变成胜局,也就ans = a/k+b/k,因为假设第一个人赢了x局,他剩下的分数是a原创 2017-03-27 18:49:18 · 406 阅读 · 0 评论 -
Gym - 100502E Opening Ceremony
题目链接:https://vjudge.net/problem/Gym-100502E 题意:给你n块砖,每块砖的高度为a[i],让你消除所有的砖,你有两种消除方法,一种是,所有砖消除一块,一种是,直接消除一列传,没执行一次消除操作,就需要一点能量,问你最小需要多少能量能把所有砖消除 解析:可以理解为一次消除一行或者一次消除一列,那么就有三种情况,一个就是一直消一行,那么答案就是n个砖的最大高度原创 2017-03-05 22:35:33 · 381 阅读 · 0 评论 -
poj3235 Fence Repair【优先队列】
题目链接:http://poj.org/problem?id=3253 题意:有一块木板,让你把他分成L块,告诉你每块的长度,问你如何分,能使得花费的代价最小,每次的代价为,分成的两块木板的长度之和 解析:想了一下,分的过程其实也就是合的逆过程,那么你就考虑合成木板的情况,每次合最小的两块是最优的,每次合完还要放回去,直至合成最终心态,才算完成操作,我采用优先队列的姿势过的题#include <原创 2017-02-26 15:48:26 · 722 阅读 · 0 评论 -
poj3617 Best Cow Line【贪心】
题目链接:http://poj.org/problem?id=3617 题意:给你一个长度为n的字符串S,让你用这个字符串构建一个新的字符串T,构建过程可以反复使用一下任意一种操作 将S的第一个元素删除,放在T的尾部 将S的最后一个元素删除,放在T的头部 让你尽可能的使得T的字典序最小 解析:每次从S拿元素时,只要保证拿到的最小即可,如果头尾选择的元素相等则比较他们下一位,直至比出大小为止原创 2017-02-26 15:12:32 · 307 阅读 · 0 评论 -
《挑战》读书笔记(一)
《挑战程序设计》P16 1.6.1先从简单题开始 题意:给你n根棍子,每根棍子长a[i],让你从中选三根棍子,组成周长尽可能长的三角形 解析:书上给的例子时间复杂度是O(n^3)的,小规模的数据可能还好,大了就不行了,下面我自己推了一个O(nlogn)的写法 把棍子长度由大到小进行排序,因为要周长尽可能的长,所以从大的选起,然后再选邻近的两个,如果不能组成就不可能了,因为换根更短的就更不可能原创 2017-02-26 13:45:49 · 435 阅读 · 0 评论 -
CodeForces 766B Mahmoud and a Triangle
题目链接:http://codeforces.com/contest/766/problem/B 题意:给你n条木棍,问你能不能选三根组成三角形 解析:排个序,扫一遍,判断两边之和大于第三边即可#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#inclu原创 2017-03-31 11:03:04 · 850 阅读 · 0 评论 -
CodeForces 777D Cloud of Hashtags
题目链接:http://codeforces.com/contest/777/problem/D 题意:给你n个#开头的字符串,让你通过删除一些字符(不能删除#),使得他们呈非递减的序列,并输出这个序列 解析:非递减,那么你从序列的末尾扫一遍上去,遇到前一个字符串比当前字符串大的就处理一下即可#include <cstdio>#include <cstring>#include <algor原创 2017-03-15 13:48:48 · 430 阅读 · 0 评论 -
CodeForces 797B Odd sum
题目链接:http://codeforces.com/contest/797/problem/B 题意:给你一个长度为n的序列,让你求他的子序列的最大奇数和是多少,输出这个最大的奇数和 解析:首先这个序列里所有的正数肯定是要的,如果所有正数的和是奇数的话那么直接就是答案了,如果和为偶数,那么就有两种情况,减去最大的奇数,或者加上最大的负奇数,然后两者比较下大小,输出较大的即可#include <原创 2017-05-04 15:29:23 · 1168 阅读 · 1 评论 -
CodeForces 803D Magazine Ad
题目链接:http://codeforces.com/contest/803/problem/D 题意:给你一个字符串,让你把他分成不超过k组的字符串,问你所有分法中k组里面最大长度的最小值,分割字符只能通过空格或者‘-’来分割字符 解析:那么既然不知道如何分,那么就二分答案,假设二分答案出来是k,那么尽可能的多拿,这样子分出来的组就会尽可能的少,然后再往下逼近答案,直至求到最小值#includ原创 2017-05-03 21:08:00 · 589 阅读 · 0 评论 -
CodeForces 803A Maximal Binary Matrix
题目链接:http://codeforces.com/contest/803/problem/A 题意:给你一个n*n的矩阵,让你往里面填1,使得这个矩阵对称,然后输出这个矩阵字典序最大的那个矩阵,如果无法完成就输出-1,矩阵字典序就是每行都进行字典序比较 解析:带点贪心的构造题,首先k>n*N肯定是输出-1,剩下的,由于是要输出字典序最大的,那么肯定是尽可能把每一行都填满,但是要对称着填,对角原创 2017-05-03 09:02:45 · 813 阅读 · 0 评论