
贪心
文章平均质量分 65
柃歌
【兰州理工大学计算机与通信学院2019级本科 | 西安电子科技大学人工智能学院2023级硕士】算法是学不明白的,代码是写不出来的,Offer是拿不到手的!学自己所热爱的内容才会坚持记录与分享,梦想远离内卷,永远追寻热爱的一切!
展开
-
AcWing 1353. 滑雪场设计(贪心)
【题目描述】农夫约翰的农场上有NNN个山峰,每座山的高度都是整数。在冬天,约翰经常在这些山上举办滑雪训练营。不幸的是,从明年开始,国家将实行一个关于滑雪场的新税法。如果滑雪场的最高峰与最低峰的高度差大于171717,国家就要收税。为了避免纳税,约翰决定对这些山峰的高度进行修整。已知,增加或减少一座山峰xxx单位的高度,需要花费x2x^2x2的金钱。约翰只愿意改变整数单位的高度,且每座山峰只能修改一次。请问,约翰最少需要花费多少钱,才能够使得最高峰与最低峰的高度差不大于171717。【输入格式原创 2022-06-11 09:56:48 · 225 阅读 · 0 评论 -
AcWing 3580. 整数配对(贪心)
【题目描述】给定nnn个整数a1,a2,…,ana_1,a_2,\dots ,a_na1,a2,…,an,nnn为偶数。现在要将它们两两配对,组成n2\frac{n}{2}2n个数对。aia_iai和aja_jaj能够配对,当且仅当ai=aja_i=a_jai=aj。每次增加操作可以使其中的任意一个数aia_iai加一。请问,要使得nnn个整数能够成功组成n2\frac{n}{2}2n个数对,至少要进行多少次增加操作。【输入格式】第一行包含整数nnn。第二行包含nnn个整原创 2022-04-18 15:40:23 · 264 阅读 · 0 评论 -
AcWing 4380. 合并石子(双指针,贪心)【第一届ACC全国高校联赛(决赛)】
【题目描述】小A面前有nnn堆石子排成一排,每堆石子的数量从左到右依次为a1,a2,…,ana_1,a_2,\dots ,a_na1,a2,…,an。小B面前有mmm堆石子排成一排,每堆石子的数量从左到右依次为b1,b2,…,bmb_1,b_2,\dots ,b_mb1,b2,…,bm。两人面前的石子总数相同,即a1+a2+⋯+an=b1+b2+⋯+bma_1+a_2+\dots +a_n=b_1+b_2+\dots +b_ma1+a2+⋯+an=b1+b2+⋯+bm。每个人原创 2022-03-27 20:40:24 · 590 阅读 · 0 评论 -
AcWing 1659. 社交距离 I(分类讨论,贪心)
【题目描述】一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播。Farmer John正在采取尽可能多的预防措施来防止他的牛群被感染。Farmer John的牛棚是一个狭长的建筑物,有一排共NNN个牛栏。有些牛栏里目前有奶牛,有些目前空着。得知“社交距离”的重要性,Farmer John希望使得DDD尽可能大,其中DDD为最近的两个有奶牛的牛栏的距离。例如,如果牛栏333和888是最近的有奶牛的牛栏,那么D=5D=5D=5。最近两头奶牛新来到Farmer John的牛群,他需要决定将原创 2022-03-25 08:27:32 · 331 阅读 · 0 评论 -
AcWing 3745. 牛的学术圈 I(贪心,双指针)
【题目描述】由于对计算机科学的热爱,以及有朝一日成为「Bessie博士」的诱惑,奶牛Bessie开始攻读计算机科学博士学位。经过一段时间的学术研究,她已经发表了NNN篇论文,并且她的第iii篇论文得到了来自其他研究文献的cic_ici次引用。Bessie听说学术成就可以用hhh指数来衡量。hhh指数等于使得研究员有至少hhh篇引用次数不少于hhh的论文的最大整数hhh。例如,如果一名研究员有444篇论文,引用次数分别为(1,100,2,3)(1,100,2,3)(1,100,2,3),则hhh指原创 2022-03-20 09:29:43 · 446 阅读 · 2 评论 -
【模板题】贪心-推公式
一、AcWing 125. 耍杂技的牛【题目描述】农民约翰的NNN头奶牛(编号为1∼N1\sim N1∼N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这NNN头奶牛中的每一头都有着自己的重量WiW_iWi以及自己的强壮程度SiS_iSi。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,原创 2022-03-17 22:13:47 · 244 阅读 · 0 评论 -
【模板题】贪心-绝对值不等式
一、AcWing 104. 货仓选址【题目描述】在一条数轴上有NNN家商店,它们的坐标分别为A1∼ANA_1\sim A_NA1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。【输入格式】第一行输入整数NNN。第二行NNN个整数A1∼ANA_1∼A_NA1∼AN。【输出格式】输出一个整数,表示距离之和的最小值。【数据范围】1≤N≤1000001≤N≤1000001≤N≤100原创 2022-03-17 21:43:59 · 299 阅读 · 0 评论 -
【模板题】贪心-排序不等式
一、AcWing 913. 排队打水【题目描述】有nnn个人排队到111个水龙头处打水,第iii个人装满水桶所需的时间是tit_iti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?【输入格式】第一行包含整数nnn。第二行包含nnn个整数,其中第iii个整数表示第iii个人装满水桶所花费的时间tit_iti。【输出格式】输出一个整数,表示最小的等待时间之和。【数据范围】1≤n≤1051≤n≤10^51≤n≤1051≤ti≤1041≤t_i≤10^41≤ti≤104【输原创 2022-03-17 21:40:43 · 345 阅读 · 0 评论 -
【模板题】贪心-Huffman树
一、AcWing 148. 合并果子【题目描述】在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1n-1n−1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为111,并且已知果子的种类数和每种果子的数原创 2022-03-17 21:37:14 · 143 阅读 · 0 评论 -
【模板题】贪心-区间问题
一、AcWing 905. 区间选点【题目描述】给定NNN个闭区间[ai,bi][a_i,b_i][ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。【输入格式】第一行包含整数NNN,表示区间数。接下来NNN行,每行包含两个整数ai,bia_i,b_iai,bi,表示一个区间的两个端点。【输出格式】输出一个整数,表示所需的点的最小数量。【数据范围】1≤N≤1051≤N≤10^51≤N≤105−原创 2022-03-17 21:29:37 · 192 阅读 · 0 评论 -
【CF1627B】Not Sitting(模拟,贪心)
【题目描述】Rahul和Tina在玩一个游戏。游戏在一个n×mn\times mn×m的网格图上进行,记第rrr行第ccc列上的格子为(r,c)(r,c)(r,c)。定义(a,b)(a,b)(a,b)与(c,d)(c,d)(c,d)之间的距离为∣a−c∣+∣b−d∣\left|a-c\right|+\left|b-d\right|∣a−c∣+∣b−d∣。游戏开始后,Tina会选择恰好kkk个格子,并将其涂成粉红色。涂完以后,Rahul会选择任意一个没有被涂成粉红色的格子并在那个格子上坐下。此后,Tina原创 2022-03-14 23:24:20 · 4505 阅读 · 0 评论 -
【模板题】区间合并
一、AcWing 803. 区间合并【题目描述】给定nnn个区间[li,ri][l_i,r_i][li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3][1,3][1,3]和[2,6][2,6][2,6]可以合并为一个区间[1,6][1,6][1,6]。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含两个整数lll和rrr。【输出格式】共一行,包含一个整数,表示合并区间完成后的区间个数。【数据范围】1≤n≤1原创 2022-03-13 15:46:26 · 268 阅读 · 0 评论 -
【CF1644C】Increase Subarray Sums(DP,贪心)
【题目描述】给定一个序列{an}\left\{a_n\right\}{an}与整数xxx,定义f(k)f(k)f(k)表示经过如下操作后,序列aaa中最大的连续子段和:将aaa中kkk个不同的位置上的数加上xxx。请求出f(k),k∈[0,n]f(k),k\in [0,n]f(k),k∈[0,n]。【输入数据】多组数据T(1≤T≤5000)T(1\leq T\leq 5000)T(1≤T≤5000)每组数据的第一行为n,x(1≤n≤5000,0≤x≤105)n,x(1\leq n\leq 5000原创 2022-03-06 10:55:14 · 485 阅读 · 2 评论 -
AcWing 1660. 社交距离 II(贪心,双指针)
【题目描述】由于高传染性的牛传染病COWVID-19的爆发,Farmer John非常担忧他的奶牛们的健康。尽管他尽了最大努力使他的NNN头奶牛们践行“社交距离”,还是有许多奶牛不幸染上了疾病。编号为1∼N1\sim N1∼N的奶牛们分别位于一条长直道路上的不同位置(相当于一维数轴),奶牛iii位于位置xix_ixi。Farmer John知道存在一个半径RRR,任何与一头被感染的奶牛距离不超过RRR单位的奶牛也会被感染(然后会传染给与其距离RRR单位内的奶牛,以此类推)。不幸的是,Farmer原创 2022-02-19 19:51:33 · 187 阅读 · 0 评论 -
AcWing 1996. 打乱字母(贪心,二分)
【题目描述】农夫约翰将按字典序排列的NNN头奶牛的名字列表贴在了牛棚的门上。每个奶牛的名字都由一个长度介于111到202020之间的由小写字母构成的唯一字符串表示。麻烦制造者贝茜将列表中的奶牛名字重新排序打乱了列表。此外,她还对每头奶牛的名字中的字母顺序进行了重新排列(也可能保持不变)。给定修改过后的列表,请帮助约翰确定列表中的每个名字可能出现在原始列表中的最低和最高位置。【输入格式】第一行包含整数NNN。接下来NNN行,按照修改过后列表的顺序,给出了修改过后的奶牛的名字。【输出格式】共原创 2022-01-26 21:35:31 · 511 阅读 · 0 评论 -
洛谷P1249 最大乘积(贪心,高精度)
【题目描述】一个正整数一般可以分为几个互不相同的自然数的和,如3=1+23=1+23=1+2,4=1+34=1+34=1+3,5=1+4=2+35=1+4=2+35=1+4=2+3,6=1+5=2+46=1+5=2+46=1+5=2+4。现在你的任务是将指定的正整数nnn分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。【输入格式】只一个正整数nnn,(3≤n≤10000)(3 \leq n \leq 10000)(3≤n≤10000)。【输出格式】第一行是分解方案,相邻的数之间用一个原创 2021-11-18 10:18:29 · 2222 阅读 · 1 评论 -
洛谷P1080 [NOIP2012 提高组] 国王游戏(贪心,高精度)
【题目描述】恰逢HHH国国庆,国王邀请nnn位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这nnn位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置原创 2021-10-22 09:54:42 · 1973 阅读 · 0 评论 -
洛谷P1016 [NOIP1999 提高组] 旅行家的预算(贪心)
【题目描述】一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1D1D1、汽车油箱的容量CCC(以升为单位)、每升汽油能行驶的距离D2D2D2、出发点每升汽油价格PP和沿途油站数NNN(NNN可以为零),油站ii离出发点的距离DiD_iDi、每升汽油价格PiP_iPi(i=1,2,…,Ni=1,2,\dots ,Ni=1,2,…,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出No Solution。【输入格式】第一行,D1,C原创 2021-10-22 08:32:28 · 261 阅读 · 0 评论 -
AcWing 122. 糖果传递(贪心,中位数)
【题目描述】有nnn个小朋友坐成一圈,每人有a[i]a[i]a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为111。求使所有人获得均等糖果的最小代价。【输入格式】第一行输入一个正整数nnn,表示小朋友的个数。接下来nnn行,每行一个整数a[i]a[i]a[i],表示第iii个小朋友初始得到的糖果的颗数。【输出格式】输出一个整数,表示最小代价。【数据范围】1≤n≤10000001≤n≤10000001≤n≤10000000≤a[i]≤2×1090≤a[i]≤2×1原创 2021-10-16 22:32:48 · 245 阅读 · 0 评论 -
洛谷P1090 合并果子 /【USACO06NOV】Fence Repair G(贪心,优先队列)
【题目描述】在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1n−1n−1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为111,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使原创 2021-10-15 09:32:07 · 157 阅读 · 0 评论 -
洛谷P1106 删数问题(字符串,贪心)
【题目描述】键盘输入一个高精度的正整数N(不超过250位),去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小。【输入格式】n(高精度的正整数)。k(需要删除的数字个数)。【输出格式】最后剩下的最小数。【输入样例】1754384【输出样例】13#include<bits/stdc++.h>using namespace std;string n;vector<int> ve原创 2021-03-10 21:00:07 · 310 阅读 · 0 评论 -
洛谷P1007 独木桥(模拟,贪心)
【题目描述】独木桥的长度为L,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为1,但一个士兵某一时刻来到了坐标为0或L+1的位置,他就离开了独木桥。每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,于是就分别转身,继续行走。转身不需要任何的时间。【输入格式】第一行:一个整数L,表示独木桥的长度。桥上的坐标为1…L第二行:一个整数N,表示初始时留在桥上的士兵数目第三行:有N个整数,分别表示每个士兵的初始坐标。【原创 2021-03-10 20:40:29 · 449 阅读 · 2 评论