贪心算法
贪心算法
_C9
咸鱼也要有咸鱼的样子
展开
-
【信息学奥赛一本通】1323:【例6.5】活动选择(贪心)
解题思路:就是很经典的贪心问题,其实我们发现可以选择的活动的个数主要取决于活动的截止时间而非开始时间,所以我们只需要按照截止时间对这些活动进行排序,然后如果下一个活动的开始时间大于等于前面的截止时间就可以活动数量加一,并且更新截止时间,这样最后得到的解一定是最优解。下面附上ac代码#include <bits/stdc++.h>using namespace std;int n;struct Node{ int begin; int end;}a[10...原创 2021-09-10 21:31:15 · 657 阅读 · 0 评论 -
【信息学奥赛一本通】1322:【例6.4】拦截导弹问题(Noip1999)(贪心)
解题思路:第一颗导弹不管怎样肯定是占用第一个系统,以后再来的第二个导弹如果小于第一个导弹的高度那么就不需要增加系统,假设大于第一颗导弹的高度,那么现在就需要增加一个导弹系统,这时再来第三颗导弹高度都小于前两个导弹系统所能拦截的最大高度,根据贪心原则,我们要比较前两个系统所能拦截的高度,选择高度较小的那个系统,这样才能做到不浪费,这时候更新前面选择的导弹系统的最小值,以此类推枚举所有导弹就可以了下面附上ac代码#include<bits/stdc++.h>using namespa..原创 2021-09-09 22:26:12 · 1626 阅读 · 0 评论 -
【信息学奥赛一本通】1321:【例6.3】删数问题(Noip1994)(贪心)
解题思路:删数问题也是经典的贪心问题。解题思路肯定不是哪个大删哪个,需要从左到右比对这个序列,如果左边的数大于右边的数则删除,因为左边代表的高位,只有高位越小这个数才越小。需要注意的是删除完这个数后可能会出现一堆前导的0下面附上ac代码#include <bits/stdc++.h>using namespace std;int main(){ char s[245]; cin>>s; int n; cin>>n; ...原创 2021-09-03 17:12:33 · 1594 阅读 · 1 评论 -
【信息学奥赛一本通】1320:【例6.2】均分纸牌(Noip2002)(贪心)
解题思路:这道题目其实并不简单,但是非常经典。是刚开始接触贪心算法最常见的一道题目。题目默认是有解的情况,要不然处理起来更加麻烦 。我们先预处理数据,算出每堆纸牌与平均值的差,然后从头到尾遍历,如果这个差不等于零,把这个差移交下一步处理,同时步数加一最后输出步数就可以了下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring&g...原创 2021-09-01 17:38:23 · 539 阅读 · 0 评论 -
【信息学奥赛一本通】1319:【例6.1】排队接水
解题思路:把接水时间短的人放在前面接水,需要记录下每个人的标号,也就是结构体排序,值得注意的是等待时间的计算问题,每个人的等待时间是这个人前面所有人的接水时间的和下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include ...原创 2021-09-01 16:41:17 · 995 阅读 · 0 评论 -
【洛谷】P1181 数列分段 Section I(贪心)
题目描述对于给定的一个长度为NN的正整数数列A_i,现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。输入格式第1行包含两个正整数N,M,表示了数列A_i的长度与每段和的最大值,第2行包含N个空格隔开的非负整数Ai,如题目所述。输出格式一个正整数,输出最少划分的段数。输入输出样例输入5 64 2 4 5 1输出3说明/提示对于20%的数据,有N≤10;对于40%的数据,有N≤1000;对于100.原创 2021-04-20 20:19:13 · 280 阅读 · 0 评论 -
再谈贪心算法
我一直认为贪心算法可以说是这些算法中最好理解,最简单了,因为他比较符合我们人类的心理,符合我们平时的思考模式,几乎总是选择最优解,去找最大利益而不去考虑后效性的问题。但是才看书没几行一句话就给我噎住了,那句话写的时我们平时习惯用贪心算法解决数据规模较大的问题,数据规模较大我想到的是大数乘之类的问题,贪心跟数据规模有啥关系呢,查阅了资料,让我联想到了贪心的原理,是将一个大问题分解成很多小问题,我在每一步都去选择最优解,不去考虑后效性,那么这句话就可以理解了,分解问题就可以将大数据变小数据,从而实现目的。当原创 2020-06-12 17:07:46 · 153 阅读 · 0 评论