![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法--贪心
妖怪吧
这个作者很懒,什么都没留下…
展开
-
洛谷1094 纪念品分组
题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入输出格式输入格式: 输入原创 2018-01-13 14:22:15 · 216 阅读 · 0 评论 -
JZOJ 5459 购物
Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description小X 正困在一个密室里,他希望尽快逃出密室。 密室中有N 个房间,初始时,小X 在1 号房间,而出口在N 号房间。 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X 到房间Y 的通道。另外,想要通过某个...原创 2018-08-07 20:42:40 · 477 阅读 · 0 评论 -
loj #10001. 「一本通 1.1 例 2」种树
题面解题思路贪心,首先按右端点排序,然后从小往大扫,因为要求树最少,所以要尽量放在右端点。然后开个bool数组判断是否种过树即可。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namesp原创 2018-07-22 16:05:00 · 626 阅读 · 0 评论 -
LUOGU P2587 [ZJOI2008]泡泡堂
传送门解题思路刚开始先写了个田忌赛马的贪心,就是要是打不过就拿最弱的送死,30分。。。后来瞄了眼题解,发现这样是错的,比如说这样的数据 : 3 3 2 3 1 如果用田忌赛马的话,让2-3 3-1 ,这样只有两分,实际上应该是2-1 3-3 这样有3分 所以应该是强贪强,弱贪弱,都打不过拿去送。这里我用了个双端对列,懒得处理边界了。代码#include<...原创 2018-07-26 16:28:12 · 112 阅读 · 0 评论 -
BZOJ 1045: [HAOI2008] 糖果传递
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4847 Solved: 2436 [Submit][Status][Discuss] Description有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。 Input 第一行一个正整数nn<=1’000’000,表示小朋友的个...原创 2018-07-07 18:36:57 · 88 阅读 · 0 评论 -
BZOJ 4004: [JLOI2015]装备购买
Time Limit: 20 Sec Memory Limit: 128 MB Submit: 2027 Solved: 624 [Submit][Status][Discuss] Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,…..,am) 表示 (1 <= i <= n; 1 <= j...原创 2018-07-18 16:52:33 · 103 阅读 · 0 评论 -
CF 549B Looksery Party
题面解题思路如果a数组全部>0,那么都不去即可。从这个角度出发,每次选出a[i]为0的,让它们去更新a数组,相当于拓补排序。代码#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;con...原创 2018-07-18 15:09:36 · 191 阅读 · 0 评论 -
CF 578B "Or" Game
传送门解题思路题意大概是给你一个数列,可以进行k次操作,每次操作可以选择一个数乘x,问操作后的或的最大值。根据位运算,位数越高答案越优,所以贪心的使这k次操作全都放到一个数上,这样的结果肯定较优。之后算一个原数列的前缀or和与后缀or和,枚举每一个数使其乘x^k并更新答案。后缀or和的思想非常巧妙。代码#include<iostream>#include&...原创 2018-07-16 19:00:18 · 129 阅读 · 0 评论 -
CF549G Happy Line
传送门解题思路题意大概就是给你个数列,你可以随意交换i,i+1,交换后位于第i+1位的数字+1,位于第i位的数字-1,问最终能否形成一个不下降序列并输出。设初始数列中两个位置x,y最终交换后的位置为u,v(u代码#include<iostream>#include<cstdio>#include<cstring>#include&l...原创 2018-07-16 18:44:07 · 220 阅读 · 0 评论 -
CF 500B New Year Permutation
传送门题目大意给你一个数列,再给你一个矩阵,矩阵的(i,j)如果为1就表示可以将i,j位置上的数交换,问任意交换之后使原数列字典序最小并输出。解题思路因为如果i与j能交换,j与k能交换,那么i与k相当于能直接交换,所以我们先使用传递闭包求出所有可以交换的情况。之后从第一个位置开始贪心,看它能跟后面哪个小于它的数交换。代码#include<iostrea...原创 2018-07-16 17:58:28 · 123 阅读 · 0 评论 -
CF 529B Group Photo 2 (online mirror version)
传送门解题思路这道题要用到贪心的思路,首先要枚举一个h的最大值,之后check。如果这个东西的w[i]与h[i]都大于枚举的值就直接return false,如果w[i]比这个值小,h[i]比这个值大,就将h[i]与w[i]交换,注意并不能直接交换因为后面还要用到,要在答案中将h[i]加上。如果交换次数比n/2大也return false,如果w[i]与h[i]均比这个值小,则将w[i...原创 2018-07-16 17:52:58 · 191 阅读 · 0 评论 -
洛谷1223 排队接水
题目描述有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。输入输出格式输入格式: 输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。输出格式: 输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时原创 2018-01-13 14:52:33 · 266 阅读 · 0 评论 -
LUOGU P1937 [USACO10MAR]仓配置Barn Allocation
传送门解题思路扫了一眼觉得是贪心+线段树,结果贪心的时候刚开始按区间长度排的序。。这还有82分,后来叉了自己,换成按右端点排序过了。代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>...原创 2018-08-20 21:29:14 · 110 阅读 · 0 评论