贪心
big up
这个作者很懒,什么都没留下…
展开
-
uva11054
题目大意:正数代表的是需要的酒的数量,负数代表的是要卖出的酒的数量,酒店之间都是线性排列的,相邻两个酒店之间的距离都是1。求花最少的费用去交易买卖来满足所有酒店的需求。思路:要使得路费最少的话,利用贪心的思想,就让相邻的两个酒店之间进行交易,不管他们是否可以满足各自的要求,只需要先让前一个满足就可以了。这样路费就只是酒*1,本来想说的是正数去寻找最近的负数的,可是这题的数据量有点大,所以可能会超时,原创 2015-12-28 15:39:56 · 343 阅读 · 0 评论 -
uvalive5848
题目大意: 给出m个坐标和n个坐标,n个坐标的横坐标都比m个坐标的横坐标要来的小。求出从m个坐标中选出一个坐标,要使得它到n个坐标中的其中一个坐标的汉明距离达到最小。思路: 汉明距离:abs(x1 - x2) + abs(y1 - y2) 由于任意的x1 < x2,所以变成x1 - x2 + abs(y1 - y2) 下面分情况进行讨论: y1 >= y2的情况,x1 - x2 + y1原创 2016-04-16 16:32:32 · 227 阅读 · 0 评论 -
uva10465 完全背包
题目大意: 一个人可以花m分钟吃一种汉堡,可以花n分钟吃另外一种汉堡,问在t时间内最多可以吃几个汉堡 应该尽可能的不浪费时间,如果真的非得浪费时间就用这些时间喝啤酒。输出喝啤酒的时间。思路: 背包+贪心 完全背包代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>int dp[10005原创 2016-02-26 17:09:58 · 269 阅读 · 0 评论 -
LA4621 Cav
题目大意:有一个洞穴,给出每个位置的高度和最深的地方,求出最多可以放多少的水。思路: 由于水面肯定是平的,且水往低处流。 所以从左到右扫描连续的区间和从右到左扫描连续的区间即可。代码:#include <iostream>using namespace std;#include <stdio.h>#include <algorithm>const int INF = 0x3f3f3f3f原创 2016-03-30 13:00:07 · 263 阅读 · 0 评论 -
uva607
题意:有n个主题。每堂课的时间是L。每个主题各要求t1,t2,…tn(1<=ti<=L)。对于每个主题,你要决定要哪堂课教。并且有如下的规则: 1.每个主题必须完整地包含在一堂课里。不能分成两部分教。 2.主题之间的顺序不能调换,即主题i必须在主题i+1之前教。 同时,如果在每堂课的最后如果能留有10分钟以内的时候,那么学生的不满意程序是最小的。不满意程度的计算如下所示: D=0(如果剩下的原创 2016-03-05 12:18:20 · 230 阅读 · 0 评论 -
LA3507
题目大意: 给出每个订单做的所需时间和最晚完成时间,求最多可以接几个订单。思路: 贪心。按截止日期排序,截止日期小的排前面,现在有一个问题,截止日期小的不一定能达到最优,有可能是(8,9),(3,10),(4,10),如果不进行处理的话,答案就会等于1 现在设置一个优先队列,队列里面存放的是那些可以完成的任务的完成时间 把当前任务的完成时间放入优先队列,如果当前任务的完成时间+当前时间原创 2016-02-03 17:45:36 · 350 阅读 · 0 评论 -
LA2757
题目大意: 超市有n件物品,每件物品有响应的利润p和保质期d,每天只能卖出一件物品,必须得在改保质期前卖出才能赚到利润,问如何卖这些物品才能使利润达到最大思路: 按保质期升序排序,用一个cur表示时间天数,如果cur <= 保质期的话,就直接加上它的利润,当cur > 保质期的话,就不断替换成最优的。这就需要一个优先级队列,存放利润从低到高,如果发现比最低的多的就 替换掉。代码:WA了。。不太懂原创 2016-02-03 16:58:52 · 346 阅读 · 0 评论 -
uva1418
题目大意: 题意:给n只队伍,每两队比两场,赢得3分,平1分,输0分,要选一个梦之队:赢最多,进球最多,失球最少。求梦之队最低排名。思路:考虑梦之队赢两场,其他队各赢梦之队一场,剩下都为平局,这样赢场就能保证最多。然后让一场赢球为正无穷。输球都0-1输这样,而其他队输球为输2球这样就能保证进球最多输球最少了。所以最后得分为 梦之队:赢2 输n -1 平n - 3 得分n + 3。被赢的队伍:赢1原创 2016-02-03 15:30:25 · 249 阅读 · 0 评论 -
uva11389
题目大意: 有n个司机,下午路线和晚上路线,现在要分别分配一条下午路线一条晚上路线给一个司机。要使得加班费最少。只要驾车时间超过d,那么多余部分一小时r元。思路: 下午最小和晚上最大搭配。贪心。代码:#include <iostream>using namespace std;#include <stdio.h>#include <algorithm>#include <cstring>原创 2016-02-03 15:14:52 · 565 阅读 · 0 评论 -
uva10382
题目大意: 最少要用多少个给定的圆才能把长度为l,宽度为w的完全覆盖住。思路: 刚开始想到的是区间覆盖问题 可以WA了,后来又改了以下结果超时了 T.T 求帮忙代码: TLE:#include <iostream>using namespace std;#include <cstring>#include <stdio.h>#include <cmath>int N;double原创 2015-12-28 20:02:20 · 483 阅读 · 0 评论 -
uva1368
题目大意: 给m个长度为n的DNA序列,求一个DNA序列到所有序列的总汉明距离最小,汉明距离为不同字符的位置的个数。思路: 用贪心的方法,刚开始还以为是在给定的DNA中选出一个,可是并不是,是要求一个DNA序列可以使得它到给定的DNA序列的距离最小。每次都求出一列中最多相同的字母。代码:#include <iostream>using namespace std;#include <cstr原创 2016-01-31 13:37:05 · 1995 阅读 · 0 评论 -
uva11636
题目大意: 经过复制/粘贴可以变成原来的两倍,求最小复制/粘贴次数。思路: 很简单的贪心,就假设每次都复制/粘贴全部代码:#include <iostream>using namespace std;#include <cstring>#include <stdio.h>int main() { int n; int cases = 1; while(scanf("原创 2016-01-29 14:15:22 · 470 阅读 · 0 评论 -
uva1420
题目大意: 给出婚礼的开始时间和结束时间,给出n场婚礼,判断司仪是否可以主持完全部婚礼,司仪要主持的时间是总时间的一半要多一点。思路: 按照司仪要主持的时间长短排序。代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>#include <algorithm>const int N =原创 2016-02-05 14:13:30 · 223 阅读 · 0 评论 -
uva10020
题目大意: 数轴上有n个闭区间,选择尽量少的区间覆盖【0,M】思路: 小白 154页 区间覆盖问题 贪心首先,在区间外的区间需要去掉,只保存有包含在所求区间的区间。 然后将保存下来的区间从小到大排序,如果第一个区间的x大于0的话,就表示无解。否则,找到比0小的x,尽量找最长的(贪心思想,这样就可以找到最短的了),找到满足的最长的之后,新的起点设置为它的y坐标,并且忽略所有区间在y之间的部分。代原创 2015-12-26 19:55:09 · 304 阅读 · 0 评论 -
uva10716
题目大意: 找到最少的步数可以使得所给字符串变成回文,可以变成回文就输出步数,不能的话就输出Impossible。思路: 刚开始想说,左边完全不动,右边去满足左边的,看了题解之后,是找到最两端满足条件的最少步数的字符之后,开始向内缩小区间,以此类推。代码:#include <iostream>using namespace std;#include <cstring>#include <s原创 2015-12-29 23:19:55 · 265 阅读 · 0 评论 -
uva993
题目大意: 给出一个数字,找出最小的可以满足每个数乘积等于它的数。思路:从9到2的找,因为这样才可以保证尽可能的小,不断的求余。代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>int main() { int cases,N,Q,count1,a[10]; bool fl原创 2015-12-29 19:17:10 · 249 阅读 · 0 评论 -
uva11100
题目大意: 有几个包裹,包裹之间是有互相包含关系的,求最少的箱子数可以将所有包裹都放进去。思路: 最多的重复个数k就需要几个箱子,因为相同的之间是不可以相互包含的。将包裹进行排序,然后从一个数i,每加K就是放在同一个箱子中的,照着这个样子输出就可以了。代码:#include <iostream>using namespace std;#include <cstdio>#include <c原创 2015-12-28 23:18:54 · 539 阅读 · 0 评论 -
uvalive4945(dp,贪心)
转自别人http://blog.csdn.net/shuangde800/article/details/10019951 题目大意: Petra和Jan分n个糖果,每个人轮流拿,一次只能拿一个,抽签决定谁先开始拿 每个糖果有两个值x,y, 如果Petra拿了会获得值x, Jan拿了会获得值y Petra每次都选择对自己价值最大的(x最大)拿,如果有多个x相同大,选择y值最小的 Jan选择原创 2016-04-21 19:49:36 · 649 阅读 · 0 评论