ZOJ 2592 Think Positive ——(xjbg)
做法是,先求出前缀和pre。然后枚举端点i,[i+1,n]中pre最小的找出来,减去pre[i-1]大于0,这是第一个条件;第二个条件是,从i开始的后缀和和i之前的最小的一个pre相加大于0。只要满足这两个条件那么这个端点就是可行的。显然找这两个区间的最值都是可以用数组线性维护的,因此总体复杂度是O(n)的。
代码如下:
1 #include <stdio.h> 2 #include <algorithm> 3 #include <algorithm> 4 using namespace std; 5 const int N = 2e5 + 5; 6 7 int a[N]; 8 int pre[N],suf[N]; 9 int min_pre_qian[N],min_pre_hou[N]; 10 11 int main() 12 { 13 int T; 14 scanf("%d",&T); 15 while(T--) 16 { 17 int n; 18 scanf("%d",&n); 19 for(int i=1;i<=n;i++) 20 { 21 scanf("%d",a+i),pre[i] = pre[i-1] + a[i]; 22 if(i == 1) min_pre_qian[i] = pre[1]; 23 else min_pre_qian[i] = min(pre[i], min_pre_qian[i-1]); 24 } 25 suf[n+1] = 0; 26 for(int i=n;i>=1;i--) 27 { 28 suf[i] = suf[i+1] + a[i]; 29 if(i == n) min_pre_hou[i] = pre[i]; 30 else min_pre_hou[i] = min(min_pre_hou[i+1], pre[i]); 31 //min_suf[i] = min(suf[i], min_suf[i+1]); 32 } 33 int ans = 0; 34 for(int i=1;i<=n;i++) 35 { 36 //printf("%d %d %d %d %d ??\n",i,min_pre_hou[i],pre[i-1],suf[i],max_pre_qian[i-1]); 37 if(min_pre_hou[i] - pre[i-1] > 0 && suf[i] + min_pre_qian[i-1] > 0) 38 { 39 ans++; 40 } 41 } 42 printf("%d\n",ans); 43 } 44 }
转载于:https://www.cnblogs.com/zzyDS/p/6637065.html
ZOJ 2592 Think Positive ——(xjbg)相关推荐
- zoj 2592 Think Positive(5-F)
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1592 要点:1 结果就是所有数的和(如果小于0,就返回0) 2将所有 ...
- 【笔记】 Hard negative:区域建议框中得分较高的False Positive(假阳性)
eg1: 对于目标检测中我们会事先标记处ground truth,然后再算法中会生成一系列proposal,这些proposal有跟标记的ground truth重合的也有没重合的,那么重合度(IOU ...
- ZOJ 3829 Known Notation(贪心)题解
题意:给一串字符,问你最少几步能变成后缀表达式.后缀表达式定义为,1 * 1 = 1 1 *,题目所给出的字串不带空格.你可以进行两种操作:加数字,交换任意两个字符. 思路:(不)显然,最终结果数字比 ...
- 【ZOJ - 3212 】K-Nice (构造)
题干: This is a super simple problem. The description is simple, the solution is simple. If you believ ...
- ZOJ 1013 Great Equipment(DP)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1013 采用动态规划解决. 设f[n][x][y] 表示前n辆车装 ...
- 2018青岛ICPC ZOJ 4061: Magic Multiplication(模拟)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4061 题意: 定义一种新型运算符: 也就是说Gao(23, 45 ...
- ZOJ 3700 Ever Dream(模拟)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3700 Ever Dream Time Limit: 2 Seco ...
- ZOJ 2702 Unrhymable Rhymes(DP)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1702 题目大意:给定有很多数字组成的诗,譬如 "AABB& ...
- ZOJ 3323 Somali Pirates(模拟)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3323 输入一段字符串,删除里面所有的数字 #include<iost ...
最新文章
- spark 任务运行原理
- python help()函数(查看特定模块、关键词、函数等用法)
- 忘记手机绑定过的UC/交易猫账号怎么找回
- 打断点的方式_一位清华退休老教授:作为家长如果能管住孩子这3点,将来会成才...
- 美国实现Believe me I can fly, Believe me I can touch sky (2)
- DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效
- AVR 工具指南(一)
- (1)简单工厂模式C++实现
- webservice测试工具
- 修复Mac上的“ Safari无法找到服务器”错误的解决方法
- C#开发组态软件心路历程
- adb工具的下载及配置
- 行业json数据以及elementui级联格式
- 美团实习| 周记(一)
- 神奇英语语法系列(二)——名词性从句
- 你是否错过了母校的AI本科专业?盘点2020国内本科开设人工智能专业高校
- 关于京东API超级搜索接口
- 2022深圳国际电子化学与新材料展览会
- 从招聘网站看程序员的分工
- visual studio下设置驱动开发环境