贪心
大 聪 明
Big Smart
展开
-
2022年“蓝桥杯”上海理工大学校选赛 Graph【结构体 贪心】
链接分析:初始的线段都是从小到大且连串的,如果两个点有交集只需要一刀断多个区间,需要两刀的情况这种情况,一刀断就可以;取决于你的区间,如果都交集于1个区间,那么就可以一刀断,所以每次遍历一个区间的时候,看左半部分是否在未切区间的交集里即可还有一个坑就是 给你区间范围的时候不都是左边小右边大的!!!!!AC代码:#include <bits/stdc++.h>using namespace std;struct node{ int x,y;}e[100010];in原创 2022-04-04 09:49:27 · 306 阅读 · 0 评论 -
CodeForces - 1526C2 Potions (Hard Version)(优先队列 贪心)
LINK题意:给出n个药水,初始生命为0,问在生命值为非负数的情况下最多可以喝多少瓶药水分析:药水按顺序喝,如果为整数就加到当前生命值中,如果为负数就放入优先队列,当生命值为负的时候,加上优先队列中第一个的绝对值,数量-1 相当于反悔了,每次都反悔喝过之前的负数最大的AC代码:#include<bits/stdc++.h>#include<queue>using namespace std;typedef long long ll;int a[200010];int原创 2022-03-17 20:26:56 · 361 阅读 · 0 评论 -
CodeForces - 1625B Elementary Particles(贪心)
传送门题意:一个含n个元素的数组,求长度最大的两个子区间(要求至少有一个元素位置对应上,初末位置相同的算一个区间)分析:举例两个1,为了对应上,第一个1最多可以前沿一个,所有第二个也前沿一个,第二个1后边最多可前沿两个,所以第一个也前沿两个,长度上再加上1点本身,所以为4。所以发现最长的长度,为两个相同的点,前点位置到头的距离加上后点位置到尾的距离,所以如果有多个相同的点,最长距离一定出现在后边临近的两个点上。AC代码:#include<stdio.h>#include<a原创 2022-01-17 19:59:12 · 703 阅读 · 0 评论 -
计蒜客 - T1551 魔法少女(动态规划)
链接题意:每走一层楼梯都需要消耗一定的时间,这过程中也可以采用飞行,能量有限,每次最多能飞1-2层就必须走楼梯休息。问你走完n层的最短时间是多少?分析:一步一步规划才行:不飞走到这层楼顶,时间为这层用时加上走完上一层的最小用时;飞走到这层楼顶,时间为上一层不飞与上两层不飞的中的最小值;AC代码:#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;long l原创 2021-10-28 10:41:37 · 160 阅读 · 0 评论 -
数学?(思维,贪心)
链接题目描述Tisfy: 这是一道数学题?给你长度为n的数组a和一个正整数k,问你a有多少个和大于等于k的连续子序列。输入格式第一行空格隔开的两个正整数,分别代表数组长度和要大于的数。第二行n个空格隔开的正整数,代表数组a。输入格式如下:n ka1 a2 … an其中:1 ≤ a i ≤ 10^51 ≤ n ≤ 10^51 ≤ k ≤ 10^10输出格式输出一行一个正整数代表数组a aa的 和大于等于k kk的连续子序列 的个数。输入样例4 106 1 2 7输原创 2021-10-23 11:30:14 · 190 阅读 · 0 评论 -
LibreOJ - 10003加工生产调度(贪心)
LINK题目描述某工厂收到了 n 个产品的订单,这 n 个产品分别在 A、B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工。某个产品 i 在 A,B 两车间加工的时间分别为 Ai,Bi。怎样安排这 n 个产品的加工顺序,才能使总的加工时间最短。这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在 A,B 两车间加工完毕的时间。输入格式第一行仅—个数据 n ,表示产品的数量;接下来 n 个数据是表示这 n 个产品在 A 车间加工各自所要的时间;最后的 n 个数原创 2021-10-04 20:15:21 · 778 阅读 · 0 评论 -
#10001. 「一本通 1.1 例 2」种树(贪心)
传送门题意:给出多个区间,要求这些区间上必须有所要求数量的点,问最少需要放置多少个点才能满足。分析:贪心最大化,所以尽量把点放在该区间的末端,后面有可能重复用到;所以sort排序,按每个区间的末端大小进行排序;ac代码:#include<stdio.h>#include<algorithm>using namespace std;int book[300010];struct node{ int x,y,t;}l[300010];int cmp(nod原创 2021-09-26 09:18:46 · 107 阅读 · 0 评论 -
UVA - 10382Watering Grass(贪心)
传送????题意:8组数据,草坪长20,宽为2,下面8个喷水器,数据分别为横坐标和半径。问最少需要多少个喷水器可以覆盖整个草坪,如果不能完全覆盖草坪输出-1;分析:勾股定理,已知圆的半径和草坪的宽,可以求出该喷水器在草坪的左右最大值。求出left,right后,进入循环体,从小到大排序,while循环贪心即可,如果后面几个喷水器left在当前必安的喷水器的左边,就求出这几个右边的最大值,才用这个喷水器继续贪心,直到right大于等于草坪长度。ac代码:#include <stdio.h&原创 2021-08-01 16:32:35 · 122 阅读 · 0 评论 -
HDU - 6948 Substring子字符串(贪心)
传送????You are given a string S[1…N] containing only lowercase letters. Now you need to find the longest substring S[l…r] such that every letter (a to z) appears no more than K times in the substring. You just need to output the length (r−l+1) of the longe原创 2021-07-30 09:52:14 · 163 阅读 · 0 评论