
贪心
文章平均质量分 53
⊱⋛赫宇⋚⊰
这个作者很懒,什么都没留下…
展开
-
CF436E Cardboard Box
但是需要注意,如果一次性选两个’Y’代价更小,不能直接把两个’Y’都取走,这是因为取了第一个’Y’后,并不保证取第二个’Y’和另一个’Y’的代价就比 q2 此时的最小值更优。如果直接用小根堆 q1 维护最小代价,每次选第一个’Y’后把第二个’Y’插入堆中,得到的答案不一定是最优的。因为假设现在还需 2 个’Y’,贪心的选了 i 的第二个’Y’,再选 j 大一点的第一个’Y’,可能并不比直接选 j 的’YY’的代价小(也就是没有综合考虑选第一个’Y’后再插入的第二个’Y’的代价)。原创 2022-10-20 19:23:18 · 196 阅读 · 0 评论 -
「NOIP2021 8.15模拟赛 B」倒吊男(hang)
题面描述给定n个区间[li,ri][li,ri][li,ri],你需要把它们划分成两部分A,B。求∣∩i∈A[li,ri]∣+∣∩i∈B[li,ri]∣|∩i∈A[li,ri]|+|∩i∈B[li,ri]|∣∩i∈A[li,ri]∣+∣∩i∈B[li,ri]∣(即两部分区间交集大小之和)的最大值。显然,对于一些区间 [l,r][l,r][l,r],它们的交集大小是 max(0,min(r[i])−max(l[i])+1)max(0,min(r[i])-max(l[i])+1)max(0,min(r[原创 2021-08-15 15:05:26 · 96 阅读 · 0 评论 -
义乌集训Day10 T3
白兔有一棵 nn 个结点带边权的树。定义 g(x,x)=0g(x, x) = 0g(x,x)=0为 xxx和 yyy 两个点路径上所有边权最大值。特别地,g(x,x)=0g(x, x) = 0g(x,x)=0白云想构造一个序列 p1⋅⋅⋅pnp_1 · · · p_np1⋅⋅⋅pn,一个序列的价值为mini=1ng(i,pi)min^{n} _{i=1} g(i, p_i)mini=1ng(i,pi)。同时,白兔给了白云一个限制:任何一个数 xxx在序列中不得超过 sxs_xsx 次。白云想知道原创 2021-07-18 21:51:25 · 106 阅读 · 0 评论 -
义乌集训Day 3 T3
题目链接先是想到直接暴力贪心分段,从l到r一个个枚举,如果<=k就不分这样的时间复杂度是O(mn) O(mn)O(mn)期望得分30pts while(m--) { ll r,l;l=read();r=read(); ll ans=1; bool pd=0; ll z=l; for(int i=l;i<=r;i++) { if(a[i]>k){pd=1;break;} if原创 2021-07-10 22:30:07 · 173 阅读 · 0 评论 -
阿卡分糖果
输入第一行,一个整数 n,表示胜利者的人数。第二行,n 个整数,第 i 个数 Ai,表示第 i 位胜利者分到的糖果数输出共一行,一个整数,表示胜利者们不开心的程度。33 3 22#include <iostream>#include <cstdio>#define N 1500000using namespace std;long long Mx,Mn;long long a[N];int n;int main() { scan..原创 2020-08-26 07:12:35 · 131 阅读 · 0 评论 -
烤乐滋下棋
这是一道排序加优化的题目和瑞士轮有点像看了题目发现,每次输的人每两个人的绝对位置都是一样的每次赢得的人每两个人的绝对位置也都是一样的,所以可以根据这条发现的规律进行优化#include<bits/stdc++.h>using namespace std;struct node{ int cs; int s; int h;}a[650000];bool cmp(node x,node y){ if(x.cs==y.cs)return x.h<.原创 2020-08-25 16:05:54 · 245 阅读 · 0 评论 -
数列分割
我们可以考虑分类讨论1.最大值是最三个数的和,肯定是能分出的;2.分类讨论考虑最小值当最大值在两边:中间的最大值+左最大值+右最大值当最大值在中间:前缀最大值+中间值+后缀最大值(证明)如果把右边或者左边割出来,假设割出来的比中间大,答案变大,如果比中间小答案不变了#include<bits/stdc++.h>#define ull unsigned long longusing namespace std;int hsum[200010],tsum[200010],a[2.原创 2020-08-25 14:24:41 · 725 阅读 · 0 评论 -
「NOIP模拟赛 蛤」Axcosin的生成树
/*题目描述Axcosin有一些图,他厌倦了求这些图的最小生成树,于是他想研究一下这些图的最大匹配。他发现,如果两张图的点数和比较大,那么连边后图就更密集,于是,如果两张图的点数和大于等于 SS,那么他会把这两张图连起来。他想知道这些图的最大匹配。*///贪心匹配 #include<bits/stdc++.h>using namespace std;int n,a[1500000],m,ans;int main(){ cin>>n>>m; f原创 2020-07-18 09:31:06 · 140 阅读 · 0 评论