codeforces 1442 A. Extreme Subtraction(贪心,构造)


样例(x):
8
15 16 17 19 27 36 29 33
结果(t1)
15 15 16 18 26 35 28 32
思路:我们可以把最左端和最右端当做两个水龙头,每个水龙头流量的上限就是a[x].
我们通过贪心,我们尽可能的使用左边的流量,例如样例(x),我们流到第二个点的时候,我们发现左边的流量不可能在第二个点流出16单位流量,说明这个点需要右边流量的补充,而且只需要补充1单位的流量,那有人会问,为什么不多流过来一些呢,这里就是贪心的想法,我左边边能完成的事就不劳烦你右边,尽可能的使用左边,不行的让右边来补充,这样样例(x)的数组就变成了结果(t1)的数组,当然,我们需要更新左边能流过来的流量flow = min(flow, a[i])和记录我们右边已经流向左边的流量d,因为右边流过来了流量,那么右边的容量也就是剩余还需要补充的流量需要减少,当我们继续流向下一个点的时候,当前需要流过来的流量应该是a[now] -= d,d为右边流过来的流量,如果a[now] < 0,说明这个点不能够承载d的流量,否则继续进行更新操作。
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <queue>
5
6 using namespace std;
7
8 #define ll long long
9 #define pb push_back
10 #define lson(rt) (rt << 1)
11 #define rson(rt) (rt << 1 | 1)
12 #define fi first
13 #define se second
14
15 const int N = 3e4 + 10;
16 int a[N];
17
18 void solve()
19 {
20 int _case = 0;
21 scanf("%d", &_case);
22 for(int o = 1; o <= _case; ++o) {
23 int n;
24 scanf("%d", &n);
25 for(int i = 1; i <= n; ++i) scanf("%d", a + i);
26
27 int flag = 1;
28 int d = 0;
29 int Min = a[1];
30 for(int i = 2; i <= n; ++i) {
31 a[i] -= d;
32 if(a[i] < 0) flag = 0;
33 if(Min >= a[i]) Min = a[i];
34 else {
35 d += a[i] - Min;
36 }
37 }
38 //for(int i = 1; i <= n; ++i) cout << a[i] << " ";
39 //cout << endl;
40
41 printf("%s\n", flag ? "YES" : "NO");
42 }
43 }
44
45 int main(){
46
47 solve();
48
49 return 0;
50 }/*
51 8
52 15 16 17 19 27 36 29 33
53 */
codeforces 1442 A. Extreme Subtraction(贪心,构造)的更多相关文章
- Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final) D. Extreme Subtraction (贪心)
题意:有一个长度为\(n\)的序列,可以任意取\(k(1\le k\le n)\),对序列前\(k\)项或者后\(k\)减\(1\),可以进行任意次操作,问是否可以使所有元素都变成\(0\). 题解: ...
- Codeforces 1082D Maximum Diameter Graph (贪心构造)
<题目链接> 题目大意:给你一些点的最大度数,让你构造一张图,使得该图的直径最长,输出对应直径以及所有的边. 解题分析:一道比较暴力的构造题,首先,我们贪心的想,要使图的直径最长,肯定是尽 ...
- Educational Codeforces Round 20 C 数学/贪心/构造
C. Maximal GCD time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 【非原创】codeforces 1029F Multicolored Markers 【贪心+构造】
题目:戳这里 题意:给a个红色小方块和b个蓝色小方块,求其能组成的周长最小的矩形,要求红色或蓝色方块至少有一个也是矩形. 思路来源:戳这里 解题思路:遍历大矩形可能满足的所有周长,维护最小值即可.需要 ...
- 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation
题目传送门 /* 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 */ /************************************************ ...
- codeforces Gym 100338E Numbers (贪心,实现)
题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...
- [Codeforces 1214A]Optimal Currency Exchange(贪心)
[Codeforces 1214A]Optimal Currency Exchange(贪心) 题面 题面较长,略 分析 这个A题稍微有点思维难度,比赛的时候被孙了一下 贪心的思路是,我们换面值越小的 ...
- 贪心/构造/DP 杂题选做
本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...
- 贪心/构造/DP 杂题选做Ⅱ
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...
随机推荐
- Spring学习(五)--Spring的IOC
1.BeanDefinition在IOC的注册 当BeanDefinition完成载入和解析之后,用户定义的BeanDefinition在IOC容器中已经建立自己的数据结构和数据表示,但是无法使用,需 ...
- Spring与Junit测试整合
一.引入spring测试包:text包 二.@RunWith:指定spring对junit提供的一个运行器 @ContextConfiguration: locations指定spring配置文件位 ...
- 02 Writing Your First Program 写你的第一个C程序
Let's print "Hi" 打印输出"Hi" In your first computer program, let's print something ...
- 【SSO】一个简单的单点登录演示实现
业务系统的管理后台往往数量众多,且各自需要一套用户名密码来进行登录,不方便使用.因此花了点时间研究如何实现一套单点登录系统. 众所周知,SSO系统设计中,往往需要想办法解决cookie不能跨域的问题, ...
- winfrom加载自定义控件、窗口pannel后闪烁问题
我用一个panel当容器,里面有好多控件,加载的时候一直闪烁. 借鉴网友的思路: 窗口初始化界面加入代码 this.DoubleBuffered = true;//设置本窗体 SetStyle(C ...
- 彻底理解红黑树及JavaJDK1.8TreeMap源码分析
1. 定义 红黑树也是二叉查找树,我们知道,二叉查找树这一数据结构并不难,而红黑树之所以难是难在它是自平衡的二叉查找树,在进行插入和删除等可能会破坏树的平衡的操作时,需要重新自处理达到平衡状态.红黑树 ...
- angularCroppie
下载 angularCroppieangularCroppie 图像Cropper使用Croppie 安装 Npm: Npm安装角croppie 使用 添加依赖项:angular.模块("m ...
- Java中字符串相关操作(判断,增删,转换)
1:判断字符串中是否包含某个字符(字符串): startsWith(): 这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置 此方法定义的语法如下: publ ...
- pytest学习纪要123-针对经常用到的内容详实记录
pytest123 本文主要参考:https://www.cnblogs.com/yoyoketang/tag/pytest 如有侵权,请站内联系我 目录 pytest123 1.setup和tear ...
- 扫描仪扫描文件处理-Python批量处理
多进程处理扫描出来的图片,参见: https://github.com/barrer/scan-helper bug问题反馈github提Issues