随笔分类 -  基础算法--贪心

摘要:题目链接:https://vjudge.net/problem/POJ-1042 题意:给n个湖,给出每个湖第一次打捞时鱼的数量f[i],每单位时间鱼减少的数量d[i],从湖i到湖i+1用时t[i],在12×h个单位时间内,求最多能获得多少鱼。在获得鱼数量相同的情况下,选择在湖1呆时间最长的方案,若 阅读全文
posted @ 2019-05-09 17:51 Frank__Chen 阅读(360) 评论(0) 推荐(0)
摘要:题目链接:https://codeforces.com/contest/1156/problem/B 题意:给一段字符串,通过变换顺序使得该字符串不包含为位置上相邻且在字母表上也相邻的情况,并输出。 思路:可以把该字符串的奇字符和偶字符按字典序分别组成字符串s1,s2,然后判断s1+s2和s2+s1 阅读全文
posted @ 2019-05-04 16:20 Frank__Chen 阅读(125) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/1153/problem/C 题意:给定由'(',')','?'组成的字符串,问是否能将其中的?全部换成'(‘,’)'使得字符串的任意非空真字串不构成正确的括号表达式,而整个字符串构成括号表达式,其中正确的括号表达式是指通过插入' 阅读全文
posted @ 2019-04-14 11:59 Frank__Chen 阅读(423) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/1119/problem/E 题意:给定n个数a[i],分别表示长度为2i-1的木条的数量,问使用这些木条最多能构成多少三角形。 思路:简单分析后可以发现能构成三角形的组合只能是(i,j,j) (i<=j)。利用贪心的思想,从j= 阅读全文
posted @ 2019-04-09 19:50 Frank__Chen 阅读(171) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1456 题意:给n件商品的价格和卖出截至时间,每一个单位时间最多只能卖出一件商品,求能获得的最大利润。 思路:首先是贪心,为获得最大利润,优先考虑价格最高的,所以要按价格降序排列,另外每一件商品售出的时间应越后越好,比如a[i].p,a 阅读全文
posted @ 2019-04-02 18:08 Frank__Chen 阅读(284) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2456 题意: 有n个呈线性排列的牲畜堋,给出其坐标,有c头牛,求把两头牛的最短距离的最大值。 思路: 先将坐标排个序。两头牛的最短距离最小为0,最大为a[n-1]-a[0]。结果一定在这之间,那么就用二分一步步逼近,若m满足要求,则在 阅读全文
posted @ 2019-03-03 21:19 Frank__Chen 阅读(211) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/1130/problem/B 思路: 贪心题。定义结构体数组a,a[i].x[0],a[i].x[1]分别表示i出现的第一个下标和第二个下标。从i到i+1过程中,只有两种可能,即Sasha选择a[i+1].x[0]或Sasha选择 阅读全文
posted @ 2019-02-25 17:26 Frank__Chen 阅读(158) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 方法1--贪心: 定义一个数组f[30005],由于题目没给数据量大小,故为了保险,开到最大(高度的最大值)。f[i]表示第i套系统最后一发导弹的值。边输入边处理就行,若当前值可以使用之前的系统则 阅读全文
posted @ 2019-02-19 18:39 Frank__Chen 阅读(272) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1080 参考:https://www.luogu.org/problemnew/solution/P1080 思路:这道题的考点是贪心和高精度。 贪心部分: 第一个人所得的金币数为X1/R1; 第二个人所得的金 阅读全文
posted @ 2019-02-02 12:18 Frank__Chen 阅读(347) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1090 思路: 典型的贪心题,显然每次选择两个最小的堆合并最后耗费的体力最少,但每次合并之后都需要寻找最小的两个堆。假如每次合并之后都排一次序,一定会超时的。 可以有很多实现方法,一种是使用优先队列,每次出队两 阅读全文
posted @ 2019-01-31 18:25 Frank__Chen 阅读(297) 评论(0) 推荐(0)