![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
差分
AKone123456
这个作者很懒,什么都没留下…
展开
-
C. The Delivery Dilemma---------------------思维(贪心排序)
解析: 因为A数组是快递并发执行的,所以只需取最大值 B数组是需要自己去的时间之和 那么我们排序A数组 讨论每个位置i,那么A数组[1,i]快递的时间为Ai 那么[i+1,n]为我们自己去取的时间,维护一个前缀和即可 然后从两个操作取得最大值,然后整体最小即可 #include<bits/stdc++.h> using namespace std; const int N=2e5+1000; typedef long long ll; ll b[N]; int t,n; struct n..原创 2020-11-05 23:18:16 · 316 阅读 · 0 评论 -
Easy Equation-------------------------思维(差分+前缀和)
解析: 由于N非常大,只能O(N)做法 所以我们利用前缀和来求出 a+b+c 例如求a+b 我们只要a即可 只要让[i,i+b ]区间+1 代表这个区间里面的数都可以由a,b构造而出 所以利用差分 f[i]++,f[i+b+1]–; 最后求一遍前缀和即可 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; type...原创 2020-11-01 21:50:52 · 364 阅读 · 0 评论 -
减成一--------------------------------思维(差分)
解析: 题目要求全变为1,那么我们改成变成0,所以每个数都-1 然后遍历,当a[i]>=a[i-1]时 对答案的贡献就是 a[i]-a[i-1]; #include<bits/stdc++.h> using namespace std; const int N=1e5+1000; int t,n; int a[N]; int main() { cin>>t; while(t--) { cin>>n; for(int i=1;i<=n;i++..原创 2020-06-01 14:50:12 · 175 阅读 · 0 评论 -
问题 B: 队爷的新书----------------------------------思维(差分+离散化)
题目描述 队爷即将出版新书,以记录他辉煌的虐题生涯。。。 有n 家出版社对这本书表示了兴趣,并愿意给队爷支付p∈[Min_pay,Max_pay]的报酬来得到这本书的出版权,每家出版社的Min_pay 和Max_pay 是不一样的。 现在队爷希望你帮他找出一个报酬值p,使得他获得的总报酬最多。(每一个Min_pay<=p<=Max_pay 的出版社都会付给队爷p的报酬) 输入 第一行为...原创 2020-04-12 22:44:02 · 177 阅读 · 0 评论