hdu 5280 贪心 O(n)算法
都是少一个?
比如说
n = 3 P = -100
A[1...3] = {10, 10, 10}
那么答案就是20,并非30
总是少一个的原因就是假设修改的那一个元素并没有影响到当前答案
若i=n,那么我们就只需要枚举L[1...n - 1]
若i=1,那么我们就只需要枚举R[2..n]
- #include <set>
- #include <map>
- #include <queue>
- #include <deque>
- #include <cmath>
- #include <vector>
- #include <string>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <cassert>
- #include <iostream>
- #include <algorithm>
- #define dprint(expr) fprintf(stderr, #expr " = %d\n", expr)
- using namespace std;
- typedef long long LL;
- typedef pair <int, int> PII;
- const int N = 1e5 + ;
- const int INF = 0x3f3f3f3f;
- const int MOD = 1e9 + ;
- const double EPS = 1e-;
- const double PI = acos(-1.0);
- int a[N];
- LL l[N], r[N];
- int main(void){
- int T;
- scanf("%d", &T);
- while (T--) {
- int n, p;
- scanf("%d%d", &n, &p);
- for (int i = ; i <= n; ++i)
- scanf("%d", &a[i]);
- l[] = r[] = l[n + ] = r[n + ] = ;
- for (int i = ; i <= n; ++i)
- l[i] = max(l[i - ] + a[i], (LL)a[i]);
- for (int i = n; i; --i)
- r[i] = max(r[i + ] + a[i], (LL)a[i]);
- LL ans = -INF;
- for (int i = ; i <= n; ++i) {
- ans = max(ans, max(l[i - ], 0LL) + max(r[i + ], 0LL) + p);
- }
- for (int i = ; i < n; ++i) {
- ans = max(ans, l[i]);
- }
- for (int i = n; i > ; --i) {
- ans = max(ans, r[i]);
- }
- printf("%I64d\n", ans);
- }
- return ;
- }
hdu 5280 贪心 O(n)算法的更多相关文章
- hdu 1269 迷宫城堡(Targin算法)
---恢复内容开始--- 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu 1009 贪心算法
博主英语不好,看懂个大概,老鼠有M磅猫食.有N个房间,每个房间前有一只猫,房间里有老鼠最喜欢的食品JavaBean,J[i].若要引开猫,必须付出相应的猫食F[i]. 当然这只老鼠没必要每次都付出所有 ...
- ACM: HDU 3790 最短路径问题-Dijkstra算法
HDU 3790 最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- hdu 5280 Senior's Array
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5280 Senior's Array Description One day, Xuejiejie ge ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- HDU 2066 最短路floyd算法+优化
http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
随机推荐
- Fragment通过接口回调向父Activity传值
Fragment: 定义一个接口,在onAttach()方法中,实例化接口对象.要求是父Activity要实现该接口.然后在你想发送信息的地方调用callBackValue.sendMessageVa ...
- sqlalchemy一对多的关系
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text ...
- Visual Basic 中读取逗号分隔的文本文件
TextFieldParser 对象提供一种可以轻松而高效地分析结构化文本文件(如日志)的方法. TextFieldType 属性用于定义文件是带分隔符的文件还是具有固定宽度文本字段的文件. Dim ...
- 自然语言处理工具pyhanlp分词与词性标注
Pyhanlp分词与词性标注的相关内容记得此前是有分享过的.可能时间太久记不太清楚了.以下文章是分享自“baiziyu”所写(小部分内容有修改),供大家学习参考之用. 简介 pyhanlp是HanLP ...
- JS正则之---HTML版
话不多说 上代码 <html><head> <meta http-equiv="Content-Type" content="text/h ...
- HTML5地图分布动画
在线演示 本地下载
- 最长上升子序列(Longest increasing subsequence)
问题描述 对于一串数A={a1a2a3…an},它的子序列为S={s1s2s3…sn},满足{s1<s2<s3<…<sm}.求A的最长子序列的长度. 动态规划法 ...
- CSP/NOIP 2019 游记
Day0 打牌 Day1 \(T1\) 没开\(ull\), 不知道有几分 \(T2\) \(N^2\)暴力+链, 没搞出树上做法, \(70\)分 \(T3\) 标准\(10\)分( 感觉今年省一稳 ...
- 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项
混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...
- @RequestMapping-占位符映射
占位符映射