随笔分类 -  贪心

摘要:终于AK了,虽然第三题主要是搞月想出来的 T1: n个1*1的小方块,把这些小方块拼成一个图形,使这个图形周长最小 思路: 枚举拼成长方形的长为i,宽为n/i 可得面积 (i+n/i+(bool)(n%i))*2 1 #include<iostream> 2 #include<cstdio> 3 # 阅读全文
posted @ 2017-11-04 16:13 jack_yyc 阅读(177) 评论(0) 推荐(0)
摘要:题目大意: n个建筑,每个建筑有两个值,一个为修它的时间长度 一个为它的截止日期(若超过该日期则无法修建该建筑) 求最多能修多少个建筑 思路: 首先我们可以把它们按照截止日期排序 然后在正常贪心的基础上 做一个优化 我们把已经修过的建筑的修建时间都放到一个队里 每次如果一个建筑不能修 那么我们考虑一 阅读全文
posted @ 2017-11-02 20:51 jack_yyc 阅读(176) 评论(0) 推荐(0)
摘要:题目大意: 有一些数对,每个数对的得分为它之前所有数对的左侧数之乘积除以它的右侧数 求重新排列后数列中所有数对中最大得分尽可能小(第一个数对不参与排序,仍然为第一个) 思路: 非常简单,可以根据它对后面的影响排序 即若a i.l/a j.r < a j.l/a i.r则a i在a j前 则a i.l 阅读全文
posted @ 2017-10-16 21:30 jack_yyc 阅读(257) 评论(0) 推荐(0)
摘要:题目大意: 把noip均分纸牌变成了环 思路: 基本与均分纸牌相同 但是需要考虑的是起点的选择 首先我们可以设i个人开始有ai个糖 然后设第i个人给前一个人的糖果数为gi 则a[i]-g[i]+g[i+1]=avg;avg为最终每个人的糖果数即平均值 得到最终答案为所有abs(g[i]) 设p数组表 阅读全文
posted @ 2017-10-12 19:10 jack_yyc 阅读(190) 评论(0) 推荐(0)
摘要:题目大意: 一些数,需要将他们依次取入一个集合中 集合的容量有限 若该数已经在集合中则不用再取 每次取的时候可以将集合中与元素替换为另一个,也可以不换,直接加入前提是不超过集合容量 求最后最小的取数次数 思路: 可以想到一个贪心算法 就是下一次将要被取位置越远的书应该先被从集合中删除 因此我们可以使 阅读全文
posted @ 2017-10-02 14:01 jack_yyc 阅读(181) 评论(0) 推荐(0)
摘要:题目大意: 有很多物品要卖,每种物品都有自己的价值和截止日期,每个物品都必须在截止日期前卖出去,每天只能卖一件东西 求最后获得的最大价值和是多少 思路: 优先队列 按照截止日期由大到小排序,从最大截止日期开始,一天天向前推直到1 如果某天是一个东西的截止日期,就把这件东西的价值加到优先队列里,每天都 阅读全文
posted @ 2017-07-22 17:10 jack_yyc 阅读(97) 评论(0) 推荐(0)
摘要:题目大意: 有一块木板,要把这块木板分成n块,已知每块的长度,每次切木板的花费就是这块模板的长度 现在求把木板切成规定要求的最小花费是多少 思路: 贪心+优先队列 先把n个小木板的长度都加到优先队列里,然后每次取最小的两个,把他们两个加起来加到优先队列里,然后把他们两个的和加到ans里 最后只剩一个 阅读全文
posted @ 2017-07-21 12:17 jack_yyc 阅读(111) 评论(0) 推荐(0)
摘要:#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<iomanip> #include<cstdlib> #define Maxn 1000005 #de 阅读全文
posted @ 2017-07-03 15:38 jack_yyc 阅读(175) 评论(0) 推荐(0)