![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
文章平均质量分 59
PrimeG
算法学习ing
展开
-
aoj0033 Ball 简单贪心
题意:一些带数字的球排成一列,下面有两个槽,让球依次往下掉,可以选择使球掉进某个槽里,如果最后可以使两个槽的球上的数字都是向上递增的就输出"YES",如果不行就输出"NO"。第一个往左面掉,以后只要比左面的大就往左面掉,否则就往右面掉,若出现一个球小于两边的就算失败,如果没出现这种情况,就算成功。#include#include#include#include#includ原创 2017-03-11 22:15:04 · 324 阅读 · 0 评论 -
POJ 1456 Supermarket 贪心+优先队列
可以从截止日期最大的一天开始循环,优先队列来维护队列中的利益最大值,把截止日期等于当天的加入到队列中,每个日期在队列中有成员时都要选其中的最大值即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2017-04-27 15:40:17 · 352 阅读 · 0 评论 -
codeforces Educational Codeforces Round 21 C. Tea Party
先把所有的杯子按尺寸大小排序,然后把每个杯子都倒上一半,若是不够就输出-1,若是没倒完就从尺寸大的开始都倒满,一直到把所有茶都倒完,因为排序的时候后打乱顺序,所以用结构体来记录杯子序号即可。#include#include#include#include#include#include#include#include#include#include#include#inc原创 2017-05-16 12:03:39 · 322 阅读 · 0 评论 -
Educational Codeforces Round 19 C. Minimal string
输入一个字符串,从左开始进行操作,每次可以把一个字母输出来,也可以把它放进一个栈里,可以随时取出输出,最终要求输出一个所有情况中的字典序最小的一种。首先先记录一下每个字母的个数,方便动态的情况下找最小值,然后就开始遍历了,每次遍历找一下当前位置向右的所有字母的最小值如果这个值小于栈的最上面的字母就把这个字母放进栈内,否则就把栈里的最上面的输出,最后再把栈里的字母都输出即可。#include原创 2017-04-16 19:24:59 · 332 阅读 · 0 评论 -
Educational Codeforces Round 19 B. Odd sum
想了想是可以贪心过的,先遍历一遍,记录大于等于0的数的偶数个数和奇数个数,然后进行从大到小排序,如果所有值都小于零,那么遍历一下输出第一个奇数;如果奇数个数是奇数,直接把大于零的数全部加起来即可;如果奇数个数是零,那么先把所有正数加起来,在加上负数里的第一个奇数;剩下的情况就是正数的奇数个数为偶数(非零),这种情况可以先把所有正数加起来,然后比较负数里的第一个奇数和正数里的最后一个奇数的绝对值大小原创 2017-04-16 19:14:45 · 343 阅读 · 0 评论 -
Educational Codeforces Round 19 A. k-Factorization
分解因数,质因数分解后(同时放进栈里)个数如果小于k,输出-1,否则就输出栈里的k-1个数,然后n/(前k-1个乘积,k=1时为1)#includeusing namespace std;int n,k,m[100005],num=0,res=1,nx;int main(){ cin>>n>>k;nx=n; memset(m,0,sizeof(m)); for(原创 2017-04-16 19:06:01 · 382 阅读 · 0 评论 -
Educational Codeforces Round 20 A - Maximal Binary Matrix
就是一个n*n方阵,有k个1放在里面,然后要求对角线对称且字典序最大,如果k>n*n就输出-1,否则就看半边,遍历一遍,k足够放两个1的话,就放一个1,然后每次换行的时候要判断还剩几个1没放,剩一个就放在对角线,如果还剩两个的话就在对角线连放两个1,然后再把另外半边对称放上就ok了(详见代码)。#include#include#include#include#include#incl原创 2017-04-30 10:17:37 · 269 阅读 · 0 评论 -
codeforces round#404(dv.2) B. Anton and Classes
题意:Anton喜欢下棋和编程,打算去上这两门课,每门课都有若干时间段,Anton想要在课间休息尽可能多的时间,并输出这个时间,若是不能上两节课就输出0。简单贪心,遍历一遍分别找出两门课的最晚开始时间和最早结束时间,然后分别用最晚开始时间减最早结束时间找出最大值。#include#include#include#include#include#include#i原创 2017-03-16 18:09:52 · 245 阅读 · 0 评论 -
codeforces round#408(div.2) C. Bank Hacking
题意:相当于若干个银行构成了一个无根树,我们需要把所有的银行hack掉,刚开始可以随意选一个,后来就只能选被hack过的邻居才行,每个银行都有他们的strength,hack它需要不比它小的strength值,每次hack一个银行后,它的邻居和邻居的邻居strength值都会+1,求hack全部的银行需要的最小strength值。可以想,如果只有一个最大值,那么存在两种情况,如果所有银原创 2017-04-11 15:59:12 · 644 阅读 · 0 评论 -
poj2010 Moo University - Financial Aid 优先队列
题意:给C只小牛办学校,但是学校只能收N(N为奇数)个小牛,每个小牛有一个考试分数和他所需的费用,小牛的费用由学校来提供,但是学校只有总共F资金,现在想要使得收的N只小牛中的分数排在中间的最大化,并输出这种情况的这个中间值,如果无法满足收N个小牛就输出-1。先把小牛用分数排序,后循环选择小牛,用优先队列算出每个小牛左边n/2个最小费用的和,在从右面用优先队列算出相应小牛的右边n/2个最原创 2017-03-15 10:38:58 · 339 阅读 · 0 评论 -
poj3614 Sunscreen贪心+优先队列(怕晒的奶牛)
题意:每个奶牛有个防晒系数(spf)范围,有若干个防晒露可以分别将spf降到某个值,但是每个防晒露都有次数限制,输出最多可以保护几个奶牛。先通过每个奶牛的minspf进行从小到大排序,并将防晒露的spf值从小到大排序,用优先队列对奶牛的maxspf维护,顶层为最小值,对于每个防晒露的spf值,取minspf小于等于这个值的放进优先队列,再从队列中取值直到该防晒露用完,依次循环,最后输出原创 2017-03-15 14:47:37 · 372 阅读 · 0 评论 -
2017多校训练第一场
1001这是一道签到题求出满足10^k1002这是道贪心算法的题,需要我们给每个字母赋一个贡献值,使得所有数的和最大。先把每个字母都看做1,然后按每个字母对结果的贡献排序来分别赋值,由于每个字母的贡献的极大且为26进制,我们可以使用数组来表示每个字母的每一位,然后按位比较大小即可,另外,由于不存在前置0,所以我们需要标记一下出现在首位的字母,最后找出不在首位里的贡献最小的数赋值为0原创 2017-07-26 15:34:31 · 498 阅读 · 0 评论