
贪心
Huglight
这个作者很懒,什么都没留下…
展开
-
Codeforces 1256D. Binary String Minimizing 贪心
题意:给一串二进制序列,可以对相邻元素进行若干次操作,每次操作交换两位置元素,给出能够进行的操作数限制k,求出在最多k次操作后可以得到的字典序最小的序列思路:原本想的是和B题一样用链表模拟,结果被insert操作搞得TLE了,原来insert复杂度也挺高的。后来发现其实只要离前面最近的0全部放到前面就行,只需要记录唯一一次特例,即k操作数不够,放不到最前面,只能放到i-k的位置上。k足够时遇到的...原创 2019-11-16 20:13:14 · 181 阅读 · 0 评论 -
Codeforces 1256B. Minimize the Permutation 贪心 STL
题意:给出一个排列,可以且仅可以对排列中某个位置相邻元素进行一次操作,该操作交换两元素位置,求出在进行操作后可以得到的最小字典序的排列思路:水题,算是对STL的应用,主要是太久没有碰代码了,手痒的不行。因为不管怎么交换只要最小的元素在最前面就行,首先1肯定是在首位,这样原来1位置之前的所有元素都需要交换一次,记录下当前已交换的元素位置,找出后面还没交换过的最小的元素,将其尽量放到前面,直到所有元...原创 2019-11-15 23:20:42 · 224 阅读 · 0 评论 -
Codeforces 1223C. Save the Nature 二分 贪心
题意:给n张票的价格pi,每a张票价格的x%用作环保项目1,每b张票价格的y%用作环保项目2,为了使投入环保项目的总额至少为k,求出重新排列票的价格后需要卖出的最少的票数思路:二分票数,用大顶堆来存储票的价格,显然a和b的公倍数位置上应该放最大的价格,其次比较x和y,较大的那个对应的位置上放较大价格,最后把剩余的没放的位置再放剩下的价格,每次从堆中取价格,判断当前票数是否满足价格至少为k,满足则...原创 2019-10-07 16:07:14 · 384 阅读 · 0 评论 -
Codeforces #578B Block Adventure 贪心
题意:有n堆方块,每堆方块高度为hi,表示这堆方块里有多少个方块,角色从第1堆顶开始移动,可以进行三种操作:取走当前顶部t个方块;在当前顶部放t个方块(不超过当前持有方块数);若下一堆与当前堆高度差绝对值不超过k,则可以向前移动。给出初始持有方块m,求是否可以从1到达n思路:其实是简单题,昨天没耐心去想,主要是贪心求解。若当前堆高于下一堆,那就从当前堆取出使两堆高度差恰好达到k的方块,使得当前堆...原创 2019-08-12 09:20:59 · 361 阅读 · 0 评论 -
Codeforces 1204B. Mislove Has Lost an Array 贪心
题意:给定n,l,r,可以任选序列,序列须满足以下条件:序列中不同的数字数不能少于l,不能超过r序列中的数a[i]要么是1,要么序列中存在a[i]/2求出序列和的最大值和最小值思路:可以发现,序列中只有2的k次幂,最小序列即除了1到2的l次幂外其余都是1,最大序列即除了1到2的r次幂外其余都是2的r次幂#include<iostream>#include<cstd...原创 2019-08-24 14:55:41 · 275 阅读 · 0 评论 -
POJ 3659 Cell Phone Network 最小支配集
题意:每个牧场的电塔可以覆盖与该牧场相邻的电塔,为了让所有牛都可以打电话,求建的电塔的最小数量思路:即求一棵树的最小支配集(最少的能够覆盖所有点的点数)贪心策略:先对树做一遍dfs,之后根据dfs的逆序对节点进行标记,s[i]表示该点已被覆盖,set[i]表示该点在最小支配集里,首先对子节点判断,若未被覆盖,则判断其父节点是否在支配集里,若不在,则将其放入支配集,覆盖该点、该点父节点、父节点的...原创 2019-08-11 10:06:24 · 166 阅读 · 0 评论 -
Codeforces 1206B Make Product Equal One 贪心
题意:给出一串序列,可以进行两种操作:将序列数减1或加1,每种操作消耗1个费用。为了使序列所有数乘积为1,求出消耗最少费用思路:对于正数,直接将其减到1即可。对于负数,当数量为偶数时,将其减到-1即可;数量为奇数时,分两种情况,序列中有0和没0,有0则可以将其中一个0减为-1,没0则需要将其中一个负数加到1,这个负数取负数中最大值使得加上的数最小即可。昨天没做出来主要两个原因:整数溢出,还有需要...原创 2019-08-19 09:17:12 · 343 阅读 · 0 评论 -
Codeforces1195A Drinks Choosing 贪心
题意:有n个学生,k种饮料,每个学生需要一种饮料,有n/2向上取整组饮料,每组饮料有两个同种饮料,求得到满足的学生的最多个数思路:每次取偶数个肯定是最优的,输入的时候判断当前品种饮料是否需求为偶数,是则减去一组,满足学生加2,并将标志设为0,若还有剩余没选,则从当前剩余的单数个中选完剩余饮料,每选一次满足学生加1#include<bits/stdc++.h>using names...原创 2019-07-18 21:03:31 · 258 阅读 · 0 评论 -
XDU暑训2019 Day3 Buy Low Sell High
题目:假设有无限金钱,给出第i天股票的金额,在第i天可以买入或者卖出股票,卖出时必须持有股票,求最大收益思路:维护一个最小堆,若堆空或者堆顶元素小于当前放入元素,将元素放入堆中,否则表示可以卖出股票,将堆顶元素出队,收益加上当前元素减去堆顶元素,再将当前元素入堆两次,其中一次表示堆顶元素升值为当前元素这题很难想得到,看看题解就好#include<bits/stdc++.h>us...原创 2019-07-03 16:52:32 · 138 阅读 · 0 评论 -
XDU暑训2019 Day3 Radar Installation
题意:有n个小岛,每个小岛有xy坐标,x坐标轴上可以安雷达,给出雷达半径d,求将所有小岛覆盖的最小雷达数思路:在每个小岛处以d画圆,与x轴相交处的点都能安装雷达,每个小岛都选出与x轴相交的区间,然后用这些区间转化为区间选点问题贪心求解区间选点:将区间按照r从小到大排列,r相同时l递减排列,则将点取在r最小处覆盖的区间最多,如下图中黑点覆盖区间比灰点多#include<iostream...原创 2019-07-03 16:00:48 · 127 阅读 · 0 评论 -
XDU暑训2019 Day3 New Year Snowmen
题意:三个不同大小的雪球可以做一个雪人,求最多雪人个数和需要的每组雪球大小思路:用贪心法,先按照相同的雪球个数对雪球排序,个数最多的先取,因为题目限制大小最多1e9,故用map,取最多个数雪球用堆来求,否则会超时,重载的比较是关键,暂时不知道为啥这样就可以过#include<bits/stdc++.h>using namespace std;int n;struct cmp...原创 2019-07-03 14:50:30 · 140 阅读 · 0 评论 -
Codeforces 489B. BerSU Ball 排序 指针 贪心
排序了无脑贪心了就完事了import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { i...原创 2019-06-15 22:22:31 · 189 阅读 · 0 评论 -
Codeforces1151B Dima and a Bad XOR 贪心法
题目:给一个矩阵,如果矩阵每行选一个元素,这些元素拿来异或结果大于0,则输出这些列下标先检查第一列是不是符合,符合就直接输出第一列,不符合就在其他列中找和第一列不同的元素,找到了就输出import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = ne...原创 2019-06-09 23:37:06 · 240 阅读 · 0 评论