贪心
Nemaleswang
ACM退役狗一只
展开
-
Leetcode 678. Valid Parenthesis String
题目链接:Valid Parenthesis String题目大意:给定一个只由左括号,右括号,星号组成的字符串,星号可以当作左括号,右括号或者空,问该字符串是否是匹配的题目思路:这题的解法十分多,比如我们可以使用两个栈,分别记录左括号和星号的位置,当遇到右括号时,有左括号就弹出左括号,没有就弹出星号去匹配。但是Leetcode的solution十分优秀,它的做法是这样的,定义一个贡献,是目前...原创 2020-04-16 23:43:04 · 205 阅读 · 0 评论 -
Leetcode 316. Remove Duplicate Letters
题目链接:Remove Duplicate Letters题目大意:给定一个字符串,要求删掉去重,且去重后的字符串字典序最小题目思路:我们可以想到一个贪心的做法,就是我们每次加入一个字符串,都对比一下前一个字符,如果前一个字符比较大并且前一个在后面还有出现,我们当然可以将前一个字符给扔掉,这样依次比较。所以我们可以想到去维护一个栈,因为每次比较前一个,那么比较栈顶即可,满足就弹出,剩下的问题就...原创 2020-02-03 21:14:30 · 139 阅读 · 0 评论 -
Leetcode 45. Jump Game II
题目链接:45. Jump Game II题目大意:给你一个序列,里面的数代表从当前位置最远可以跳多少步,问经过最少多少步能够跳到末尾题目思路:这题跟Leetcode 55题差不多,只不过做了个最少多少步的优化。我们可以考虑这样一件事,每个点能够达到的最远步数为当前的位置加上步数,那么如果有一个点的最远步数超出了末尾,并且在前面的步数中又可以到达这一步,那么经过有限次迭代之后能够到达末尾,并且...原创 2019-09-22 16:20:53 · 151 阅读 · 0 评论 -
Codeforces Round #477 (rated, Div. 2)
题目链接: Codeforces Round #477A. Mind the Gap 题目大意:有n个着陆时间,现在要你去插入一个起飞时间,着陆和起飞都需要一分钟,并且插入之后所有的起飞和着陆时间之间的时间差至少得为s,问能插入的最早的时间点是多少题目思路:直接排完序之后贪心去找就好了,时间差应当在s+1之外,特判一下第一次之前和最后一次着陆时间就好了#include <map...原创 2018-04-30 22:33:11 · 262 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) D. Jury Meeting
题目链接:Jury Meeting题目大意:有0到n这样n+1个城市,有m个航班,给出出发的时间(当天出发,当天到),出发的城市,到达的城市(要么是从0到某城市,要么是从某城市到0),后面是花费,然后除了0之外的所有城市都有1个科学家,现在所有家要一起在0呆k天,然后回到自己所在的城市,问最小花费题目思路:贪心去做,我们先去找出发的最小花费,再找到达的最小花费,两个相加,预处理一下前缀和就好了(代码原创 2017-09-07 20:46:00 · 308 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) C. Planning
题目链接:Planning题目大意:有n架飞机,所有的飞机至少得在k+1分钟后才能飞行,第i架飞机每分钟延迟的费用是a[i],每分钟只能起飞一架飞机,问最小延迟费用是多少题目思路:按样例模拟,我们可以看到对于延迟花费最大的,我们应该让他在最接近的时候走,然后贪心做,用过的时间不能再用,所以要扔出去,用一个set维护就好了,思路比较乱,看代码一眼就能看懂了#include <map>#include原创 2017-09-07 20:28:20 · 264 阅读 · 0 评论 -
hdoj 6034(2017 Multi-University Training Contest - Team 1)Balala Power!
题目链接:Balala Power!题目大意:(真是拗口的题意)有n个字符串,每个字符串都只包含小写字母,每一个小写字符都可以有且仅有一个独立的权值,所以这个权值的范围是0-25,所以每一个字符串就可以变成一个26进制字符串,然后这个26进制是从右到左计数,也就是说26n26^n<-26026^0,因此每个字符串都有一个总的权值,现在要求得这样的一个最大权值题目思路:(标程想法吧,tls的标程确实是原创 2017-08-02 17:35:30 · 336 阅读 · 0 评论 -
Educational Codeforces Round 25 E. Minimal Labels
题目链接:Minimal Labels题目大意:给你一个DAG,n个点,m条边,现在要求你用1-n这n个数对每个点标记,如果存在一条从u到v的边,那么v的标记需要比u大,结果输出1-n每个点的标记,并且要求字典序最小题目思路:我们可以很轻松的想到我们首先要从出度为0的点开始标记,因为出度为零,不出边,那么让他最大当然是没问题的,然后就是因为要字典序最小,所以出度为零的好几个,肯定要让值最大的数标记最原创 2017-07-18 19:08:00 · 315 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) D. Office Keys
题目链接:Office Keys题目大意:有一条直线上有一些客户和钥匙,然后有一个终点,然后每个客户至少捡到一把钥匙再到终点,一把钥匙只能一个人用,现在所有的客户都拿到了一把钥匙并且到了终点,这些所有客户里面时间有一个最大值,现在要求你使得这个最大值最小,问这个最小值是多少题目思路:我们可以知道最后的钥匙和客户位置一定是同样递增的,那么这时候我们只需要取尽量左边的位置就好了,这时候我们就可以二分这个原创 2017-07-16 18:31:46 · 355 阅读 · 0 评论 -
Educational Codeforces Round 25 C. Multi-judge Solving
题目链接:Multi-judge Solving题目大意:在codeforces上有n个不同难度的题目需要你去解决,现在你在其他OJ上已经解决的最大难度的题目为k,你要解决一个难度为s的问题的前提条件是你当前解决的所有问题的最大难度d要大于等于s,现在cf上这些题目你需要全部去解决,现在问你要通过其他OJ解决几道问题才行题目思路:当前的a[i]个问题中,如果这个问题难度a[i]*2小于k,那么k =原创 2017-07-18 14:19:59 · 565 阅读 · 0 评论 -
swunoj 1877 回忆的碎片
题目链接:回忆的碎片题目大意:给你一些数,每个数可以选一次,也可能不选,问不能组成的最小正整数为多少题目思路:三种思路:一、排完序后滚动着往里面扫,如果当前的值大于sum+1,就直接输出,否则继续。二、01背包。三、暴力模拟01背包,直接每扔一个数加一遍#include #include #include #include #include using name原创 2017-05-17 23:28:41 · 296 阅读 · 0 评论 -
hdoj 2037 今年暑假不AC
题目链接:今年暑假不AC题目大意:有n个电视节目,给你开始时间和结束时间,在一个时间段只能看一个电视节目,问最多可以看多少个节目题目思路:按结束时间排序后直接贪,简单题,因为我们需要节目尽可能多,所以当然我们看的每个节目越短越好,那么我们肯定选结束时间早的,然后判断一下重叠就好了#include <bits/stdc++.h>using namespace std;struct node{原创 2017-05-12 12:42:10 · 376 阅读 · 0 评论 -
hdoj 2570 迷瘴
题目链接:迷瘴题目大意:给你一个n,v,w,然后给你n个数p[i],代表有n种药,每种药的体积都是v,现在每种药的浓度为p[i]%,然后问你最多可以兑多少种药使得混合后药品的浓度不超过w%(药瓶不能取一部分,只能全部混合)题目思路:排一下p的序,然后按照题意走就好了,浮点有时候精度有问题,直接推一下公式:V+(p[i]v)/100为现在的药品总分量(V为之前的总药品重量),(i+1)*v为当前总体积原创 2017-05-12 12:35:48 · 345 阅读 · 0 评论 -
soj 4558 Coupon
题目链接:Coupon题意大致就是给你n对数,每对数代表一场电影,k张优惠券,m的钱,然后这n场电影分别有两个值,一个是不使用优惠券的价格,一个是使用优惠券的价格,然后问你在k张优惠券m钱的限制下能够看多少场电影,这道题贪心的做法是错误的,因为可以被无情的hack掉,但是可以AC这道题,所以数据没有考虑到一些情况吧,怀疑标程写错,还是给出贪心做法,正解以后会找时间补掉,贪心想法是不管打原创 2017-04-12 16:47:14 · 613 阅读 · 0 评论