贪心
Sqwlly
有自己热爱的东西,真好。
展开
-
CodeForces - 913D(贪心+优先队列)
D. Too Easy Problemstime limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard outputYou are preparing for an exam on scheduling theory. The exam wil...原创 2018-03-07 18:16:02 · 431 阅读 · 0 评论 -
ZOJ 4062 Plants vs. Zombies(二分+贪心) 2018ACM-ICPC青岛现场赛E
Plants vs. Zombies题解:首先肯定可以想到走过去再回来是肯定浪费步数的,最多的只能是相邻的两个植物来回,大致就呈一个ZZZ字形走过,最后要注意最后一步停在哪里。其次最大化最小值,二分即可。(深深吐槽%\%%,2000ms2000ms2000ms刚好卡过233333323333332333333,然后再交就tletletle,最后改成ceilceilceil才稳的)代码#inc...原创 2018-11-08 22:56:40 · 1087 阅读 · 0 评论 -
洛谷P2102 地砖铺设(贪心)
P2102 地砖铺设题解:真的是训练程度太不饱和。参考了大佬的题解。我一开始也是想着不论n&gt;mn&gt;mn>m还是n&lt;mn &lt;mn<m,都可以用BCBC...BCBC...BCBC...给分隔开,然后继续放AAA。实际上是错的。。。正解应该是贪心扩展,直到不满足为止(点被占用或者达到边界或者无法涂色)。#include<b...原创 2018-11-11 21:20:13 · 569 阅读 · 0 评论 -
洛谷P1080 国王游戏(贪心)
P1080 国王游戏题解:首先考虑相邻的两个大臣该如何排列。如果iii排在jjj前面需要满足ai⋅prebj&lt;aj⋅prebi\frac{a_i \cdot pre}{b_j} &lt;\frac{a_j \cdot pre}{b_i}bjai⋅pre<biaj⋅pre,显然ai⋅bi&lt;aj⋅bja_i \cdot b_i &lt; ...原创 2018-11-07 17:04:38 · 383 阅读 · 0 评论 -
HDU 5353 Average(贪心)
Average题解:首先如果总糖果数不能整除nnn就输出NONONO。其次考虑两个方向变为暂时只朝一个方向,每个人与平均值的差,如果比平均值少一就从后一个人那里拿一个,如果比平均值多一个就给后一个人一个,如果等于平均值就什么也不做。因此枚举左右方向两次,最后每次枚举模拟完判断一下是否最后平分了就可以了。#include<bits/stdc++.h>typedef long lon...原创 2018-11-06 22:37:00 · 219 阅读 · 0 评论 -
HDU 5821 Ball(贪心)
Ball题解:首先贪心的去把aaa数组对应到bbb数组的位置,然后每次操作就相当于对小球升序排序,让其更接近应该在等等位置,最后看一下最后的位置是不是到位了即可。代码#include<bits/stdc++.h>using namespace std;pair<int,int> a[1011];int main(){#ifndef ONLINE_JUDGE...原创 2018-10-21 20:05:57 · 261 阅读 · 0 评论 -
洛谷P1638 逛画展(贪心)
P1638 逛画展题解:维护一个涵盖所有画师的滑动窗口,尽量让窗口内每种画的数量保持在111,记录长度最短的窗口端点。代码#include<bits/stdc++.h>using namespace std;int n,m,d[1000010],now[2001];int main(){#ifndef ONLINE_JUDGE freopen("input....原创 2018-09-30 17:00:38 · 396 阅读 · 0 评论 -
洛谷P1843 奶牛晒衣服(贪心)
P1843 奶牛晒衣服题解:每次用烘衣机来烘最湿的衣服,然后减去烘衣机烘干的湿度,累计自然晒干需要的天数,每次取最湿的衣服用优先队列维护即可。代码#include<bits/stdc++.h>using namespace std;const int N = 5e5+10;priority_queue<int> pq;int main(){#ifn...原创 2018-09-30 16:01:38 · 665 阅读 · 1 评论 -
洛谷P1109 学生分组(贪心)
P1109 学生分组题解:因为只需要计算移动次数,那么计算出每组人数与要求的人数差多少即可。代码#include<bits/stdc++.h>using namespace std;int n,L,R,a[52];void solve(){ int ret = 0, ter = 0; for(int i = n-1 ; i >= 0; --i){ if...原创 2018-09-30 15:05:50 · 692 阅读 · 0 评论 -
洛谷P1230 智力大冲浪(贪心)
P1230 智力大冲浪题解:准着一个贪心思想,在尽可能短的时间内,做价值尽可能多的题。因此,我们可以按照价值从大到小排个序,然后对于每一道题看在时间限制内可以做哪几道题。时间复杂度Θ(N2)\Theta(N^2)Θ(N2)。#include&lt;bits/stdc++.h&gt;using namespace std;struct pig{ int v,t; boo...原创 2018-09-30 14:53:55 · 781 阅读 · 0 评论 -
HDU2037 今年暑假不AC(贪心)
今年暑假不AC题解:准着贪心原则,越早结束的尽量先看。因此对结束时间排序,如果下一个节目的开始时间要大于当前节目的结束时间,那说明可以看一个节目。代码#include<bits/stdc++.h>using namespace std;struct tv{ int l,r; bool operator < (const tv & u)const{ r...原创 2018-10-14 23:27:20 · 195 阅读 · 0 评论 -
HDU 4310 HERO(贪心)
HERO题解:优先打hpdps\frac{hp}{dps}dpshp小的,排个序即可。代码#include<bits/stdc++.h>using namespace std;struct node{ int dps,hp; bool operator < (const node & u)const{ if(1.0 * hp / dps == 1...原创 2018-10-14 23:17:25 · 141 阅读 · 0 评论 -
HDU 5037 Frog(贪心)
Frog题解:模拟肯定是不能模拟的了,就考虑怎样放石头才能让青蛙跳的次数尽量多了。能想到的只有在L+1L+1L+1的长度内最多跳两次,所以我们就去尽可能构造L+1L+1L+1。如果当前石头距离上一次石头的距离大于LLL,那么就需要单独再跳一次,否则就可以归到上一次跳跃。代码#include<bits/stdc++.h>using namespace std;int n,...原创 2018-10-14 21:45:39 · 149 阅读 · 0 评论 -
HDU5661 Claris and XOR(异或贪心)
Claris and XOR题解:考虑异或的性质,肯定是尽量让x和y满足以下两种情况:xxx第iii位为111,yyy第iii位为000xxx第iii位为000,yyy第iii位为111但是要考虑第三种种情况,以上两种情况都满足不了时,第iii位同时为111,此时我们应该也算上,不然对于判断后面低位的时候会有影响。因此我们直接考虑枚举二进制位即可。至于判断的时候,我们去看在x+(1&...原创 2018-10-14 13:47:52 · 241 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 G Trace(贪心)
Trace问题分析题意:nnn波矩形海浪,每次都会在沙滩上留下痕迹,求最后的痕迹长度。 题解:因为题里保证了不会有海浪覆盖的情况,所以nnn波海浪都会凸出去,如果画个图看,就会发现我们对于每一个横坐标只要去找离它最近的并且比它小的横坐标累加这两个坐标的差值即可,纵坐标亦是如此。代码#include &lt;bits/stdc++.h&gt;typedef long lo...原创 2018-09-10 22:52:09 · 264 阅读 · 0 评论 -
2018CCPC网络预选赛1001(hdu6348) 贪心+优先队列
Buy and Resell问题分析题意:有nnn个村庄,每经过一个村庄你有以下三个选择 1. 买能量块 2. 卖能量块 3. 什么也不做 求最后可以获得的最大利润,并且尽可能减少交易次数。我们可以准着低买高卖的原则,用一个小顶堆维护我们交易过的能量块。 只要当前能量块iii的价格高于我们之前买来的能量块jjj的价格,我们就可以将其卖出去,并且一定是获利的,但是这样做...原创 2018-08-26 19:19:57 · 478 阅读 · 0 评论 -
牛客多校第四场 G Maximum Mode
Maximum Mode问题分析题意就是问你能否精确的删除mmm个数,使得数列中的众数只有一个并且保证值最大化。 如果数列中众数不止一个,那么我们去考虑对于出现次数相同的数,最少删除几个数可以使得它变为众数,我们设这个最少的删除数为minDeleteminDeleteminDelete,如果此时minDelete<=mminDelete<=mminDeletem−minDel...原创 2018-07-29 18:36:28 · 251 阅读 · 1 评论 -
CCPC-Wannafly Winter Camp Day1 (Div2, onsite) J 夺宝奇兵(贪心)
夺宝奇兵现场时:一开始我有点纠结,因为不知道是优先当前数量最多的还是优先当前最便宜的。然后我起初的想法就是维护一个当前数量最多并且最便宜的堆,直到当前已拥有的宝物数量大于堆顶的宝物的数量。后来想了想,是不对的,因为我维护的第一关键字是数量最多,所以花费可能并不是最少的,有可能我买另两个个较便宜的宝物从而成为了数量最高,并且此时花费最少。题解:实际上可以枚举最后成为全场数量最高后的数量,我们设其...原创 2019-02-01 21:07:04 · 524 阅读 · 0 评论