![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
wly127
这个作者很懒,什么都没留下…
展开
-
NOIp提高组2011 观光公交————贪心
题解:本题主要考察贪心。简要题意:观光公交在第000分钟在111号景点,依次前往nnn号景点。从第iii号到第i+1i+1i+1号要DiD_iDi分钟。公交车只能往前开,或等待。共有mmm个游客,第iii位游客在TiT_iTi分钟来到景点AiA_iAi,乘车前往景点Bi(Ai<Bi)B_i(A_i<B_i)Bi(Ai<Bi)。公交车安装了kkk个氮气加速器,每使...原创 2019-11-07 20:33:37 · 241 阅读 · 0 评论 -
NOIp提高组2014 联合权值————dp/贪心
题解:本题主要考查dp/贪心。简要题意:一棵树,编号为iii的点的权值为WiW_iWi,每条边的长度均为111。对于图GGG上的点对(u,v)(u,v)(u,v),若它们的距离为222,则它们之间会产生Wv×WuW_v \times W_uWv×Wu的联合权值。求最大的联合权值和联合权值总和。1.dp/贪心:其实本题换一种思想就很简单,因为距离为222的点一定有一个中间点,所以枚举每一...原创 2019-10-31 15:03:33 · 152 阅读 · 0 评论 -
洛谷 序列合并————贪心+优先队列
题解:本题主要考查贪心+优先队列简要题意:有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到N2N^2N2个和,求N2N^2N2个和中最小的N个1.这道题和果子合并有点像,都用优先队列来处理,ai+bja_i+b_jai+bj没有放入优先队列时,ai+bj+na_i+b_{j+n}ai+bj+n也都不会被放入,可以直接break。(第一次交没有优化就超时了…)代码如下:...原创 2019-10-28 19:27:02 · 172 阅读 · 0 评论 -
洛谷月赛 小C与桌游————拓扑排序+贪心+优先队列优化
题解:本题主要考查拓扑排序+贪心+优先队列优化。简要题意:nnn个点,mmm条边的有向无环图,求拓扑序的前缀最大值最多和最少。1.拓扑排序+贪心:我们发现这道题和拓扑排序有关,知道了这一点,问题就解决了大半。对于求最大的,我们可以贪心的取编号最小的入度相同的点。但对于求最小的,就不能直接贪心取取编号最大的入度相同的点,大部分人(包括我)都是这样错的!因为这样忽略了较小的点!所以我们讨论一下:...原创 2019-10-28 16:59:02 · 188 阅读 · 0 评论 -
NOIp提高组 2012国王游戏————贪心+高精度
题解:本题主要考查贪心+高精度简要题意:有nnn位大臣,左手右手分别写一个数,国王也写。排成一排,国王站最前面。每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。求奖赏最多的大臣,所获奖赏尽可能的少。1.贪心:本题的贪心很巧妙,我们可以从小规模的数据入手。kin: n1,n2n_1,n_2n1,n2p1:x1,y1x_...原创 2019-10-23 17:05:01 · 172 阅读 · 0 评论 -
NOIp提高组 2011选择客栈————贪心+递推
题解:本题主要考查贪心+递推。简要题意:两个客栈a,b,满足a,b颜色相同且[a,b]闭区间之间必须存在某个客栈的咖啡店的花费<=p。求满足的方案数。1.贪心+递推:我们枚举客栈,用t来记录最近的花费小于等于p的客栈,以它为选择的咖啡店,向后枚举记录到上一个t的客栈颜色种类数(因为[a,b]闭区间有花费小于等于p的)。所以如果这个客栈更新了t,ans+=num[这个客栈的颜色]-1如...原创 2019-10-22 16:34:58 · 119 阅读 · 0 评论 -
AcWing 激光炸弹————二维前缀和
题解:本题主要考查二维前缀和。简要题意:有 N 个点,用Xi,Yi表示地图上的位置,每个目标有一个价值Wi,有一个有一个边长为R的正方形,求点在正方形的最大价值。1.二维前缀和:画出图来就易得前缀和式子为f[i][j]+=f[i-1][j]+f[i][j-1]-f[i-1][j-1]。代码如下:#include<iostream>#include<algorithm&g...原创 2019-07-05 15:42:46 · 253 阅读 · 0 评论 -
bzoj4240有趣的家庭菜园————贪心+逆序对+树状数组
题解:本题主要考查贪心+逆序对简要题意:一个序列移成一个前一段单调不降,后一段单调不升的序列最少要交换多少次 。1.贪心:先把序列从大到小排序,最大值放在中间,次高的在左边或右边谁逆序对少就在哪边。2.逆序对:对于一个数列下标1…n,把它进行操作后得到的下标为241…那么交换次数即为这个新数列的逆序对数。3树状数组:求逆序对代码如下:#include<iostream>#...原创 2019-07-14 17:48:32 · 137 阅读 · 0 评论 -
AcWing 100 IncDec序列————差分+贪心
题解:本题主要考查差分,贪心简要题意:给定一个长度为 n 的数列,每次可以选择一个区间 [l,r],这个区间内的数都加一或减一。求至少需要多少次操作使所有数都一样,并求出在最少次数下,得到的数列有多少种。1.差分:本题主要是对区间操作,对差分数组c而言,c[l]+=a,c[r+1]-=a.c中的其他元素并未改变,我们就使数组c变为0即可。2.贪心:因为一个是加一,一个是减一,就负数++和正数...原创 2019-07-03 22:22:14 · 168 阅读 · 0 评论 -
NOIp2012借教室————差分+前缀和+二分
题解:本题主要考查差分+前缀和+二分。简要题意:n天,第i天有ri个教室可借。有m份订单,某租借者需要从第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要租借dj个教室。求是否能满足。1.差分和前缀和:因为需要对教室进行区域减,所以用差分和前缀和快速进行操作。2.二分:在这里又学到了二分的一个条件:可以局部舍弃性。就可以二分序号快速找出答案。代码如下:#include...原创 2019-07-12 20:33:20 · 423 阅读 · 0 评论 -
NOIP2007守望者的逃离(普及组T3)————贪心
题解:本题主要考查动态规划,贪心。分析题意知:闪现一般比跑快。所以一开始用闪现,用max比较,可得答案。注意(要更新值,更新值,更新值!)代码如下:#include<iostream>#include<algorithm>using namespace std;int m,s,times,i,j;int dp[300001];int main(){ ...原创 2018-09-30 23:13:01 · 632 阅读 · 0 评论 -
NOIp2018铺设道路(提高组T1)————模拟,贪心
本题主要考查模拟,贪心,我们可以画出柱状图来分析。当左边的一堆比右边矮,左边的一堆摆完后,右边的还差一点,那么摆放次数s加上两堆的高度差。代码如下:#include<iostream>using namespace std;int n,sum=0,i,j;int h[10000001];int main(){ cin>>n; for(i=1;i...原创 2018-11-25 17:01:31 · 483 阅读 · 0 评论 -
NOIp1999旅行家的预算(提高组)————贪心
题解:本题主要考查贪心。这题贪心思路很好想,主要还是细心。代码如下:#include<iostream>#include<cstdio>using namespace std;double D1,D2,D0=0,c,n,money=0,l=0,p;int i,j;double d[2326],pi[2236];int main(){ cin>...原创 2019-03-25 22:40:14 · 494 阅读 · 0 评论