10月20日备战Noip2018模拟赛10

T1 Max和最大

题目描述

CYF的黑题,偏题,怪题,黑科技题,大码农题都做腻了,于是她想做一下签到水题,她希望从有一个长度为ň的整数序列(A1,A2,...,一个)中找出一段连续的长度不小于A,且不超过乙的子序列,使得这个子序列的和最大。

输入格式

第一行三个整数N,A,B(1 <= A <= B <= N)。第二行为Ñ整数,每个整数用空格隔开,表示该整数序列。

输出格式

一个整数,为CYF轻易求出的最大子序和。

输入样例

6 3 5
1 -3 5 1 -2 3

输出样例

7

样例解释

选从第三个数开始往后连续的四个数这四个数的和是5 + 1 +( - 2)+ 3 = 7

数据范围

对于30%的数据,N <= 1000

对于另外30%的数据,A = 1且B = n。

对于100%的数据,N <= 50万


思路

DP +单调队列

1.由求区间值,转移到求前缀和的差
.f [i]表示前i项的和,那么区间[i,j]的和即为f [i] -f [j-1],这样就简化了问题。

2.对于以i结尾的某个序列,j为前端点,则i-b + 1 <= j <= i-a + 1.
所以以i结尾的序列和的最优值为f [i] - F [J-1]

3.对转移过程进行优化,记录i-b + 1 <= j <= i-a + 1之间最小的值。这样就维护一个单调队列,把复杂度降为O(N)。

60分代码(不用单调队列)

#include <iostream>
#include <cstdio>using namespace std;const int maxn = 500005;
const int INF = -0x7fffffff;int n, x[maxn], a, b, tmp, ans = INF, s[1001];int main()
{scanf("%d%d%d", &n, &a, &b);for (int i = 1; i <= n; i ++){scanf("%d", &x[i]);}if (n <= 1000){for (int i = 1; i <= n; i ++){s[i] = s[i - 1] + x[i];}for (int i = 0; i <= n; i ++){for (int j = i + a; j <= min(i + b, n); j ++){ans = max(ans, s[j] - s[i]);}}}else{for (int i = 1; i <= n; i ++){if (x[i] + tmp < 0) tmp = 0;else tmp += x[i];if (tmp > ans) ans = tmp;}}printf("%d", ans);return 0;
}

代码

#include<iostream>
#include<cstdio>
#include<cstring>using namespace std;const int N = 500001;
const int INF = -0x7fffffff;int ans = INF;
int i, j, k, n, m, a, b, t, w, p;
int d[N], f[N], s[N];int main()
{freopen ("max.in", "r", stdin);freopen ("max.out", "w", stdout);cin >> n >> a >> b;for (i = 1; i <= n; i ++){cin >> k;f[i] = f[i - 1] + k;if(i >= a){w ++;d[w] = f[i - a];s[w] = i - a;if (i - s[t] + 1 > b) t ++;p = w - 1;for (j = p; j >= t; j --){if(d[w] < d[j]){d[j] = d[w];s[j] = s[w];w = j;}else break;}ans = max (ans, f[i] - d[t]);}}cout << ans;fclose(stdin);fclose(stdout);return 0;
}

备战Noip2018模拟赛10(B组) T1 Max 和最大相关推荐

  1. 备战Noip2018模拟赛20 (A组) T1 Cz 礼物

    10月24日备战Noip2018模拟赛20(A组) T1 Cz礼物 题目描述 有Ñ种物品,第I种物品的价格为六,每天最多购买XI个. 有米天,第我天c♂x有无线的钱,他会不停购买能买得起的最贵的物品( ...

  2. 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果

    10月3日备战Noip2018模拟赛3(B组) T1 Apple韬韬抢苹果 题目描述 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果.每个韬韬都想要最大的苹果,所以发生 ...

  3. 备战Noip2018模拟赛7(B组)T1 Voting 兔子选举

    10月5日备战Noip2018模拟赛7(B组) T1 Voting 兔子选举 题目描述 兔子常常感到孤独,所以一组的兔子决定走到一起,并举行选美比赛,以确定它们之间谁拥有最漂亮的耳朵.规则如下: 每只 ...

  4. 备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈

    10月3日备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈 题目描述 在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了! 为了展示中华民族博大精深的优秀传统文化,负责开 ...

  5. 备战Noip2018模拟赛5(B组)T2 Tree 采果子

    10月4日备战Noip2018模拟赛5(B组) T2 Tree采果子 题目描述 LYL大牛今天心情不错,于是走到埃及郊外旅游.他边走边向四周望望,发现周围有许多果树.这些树之间互相到达的时间LYL是知 ...

  6. 备战Noip2018模拟赛11(B组)T4 Path 好路线

    10月27日备战Noip2018模拟赛11(B组) T4路径好路线 题目描述 nodgd在旅游.现在,nodgd要从城市的西北角走到东南角去.这个城市的道路并不平坦,nodgd希望找出一条相对比较好走 ...

  7. 备战Noip2018模拟赛7(B组)T2 Pearl 数数

    10月5日备战Noip2018模拟赛7(B组) T2珍珠数 题目描述 给定Ñ个整数,求值在某个范围内的数的个数. 输入格式 第一行为正整数ñ. 第二行有Ñ个整数(0 <=数值<= 231- ...

  8. [NOIP2018模拟赛10.19]只会暴力报告

    闲扯 今天又是暴力满满(并不)的一天呢 昨天老师说了分数要正态分布,今天看起来...不过暴力分很多,虽然我人太傻逼又没打满 T1 woc?不是说送分的吗,看起来又是个树形DP神题,暴力告辞,链上的搞一 ...

  9. 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会

    目录 前言 一.相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二.蓝桥杯 1.应该参加蓝桥杯吗? 2.如何进 ...

最新文章

  1. 最大流 ---- 最大不相交路径数 ---- P2766 最长不下降子序列问题(网络流24题)
  2. Jquery中获取表单的值并提交
  3. 怎么下载安装激活Adobe After Effects CC 2019教程
  4. 【源资讯 第24期】有人总想搞大新闻:“Windows 11”爆猛料;微信放出“小程序码”...
  5. 使用 FlipClock.js 制作精美的时钟、定时器和倒计时功能
  6. 多种脚本语言生成九九乘法口诀表
  7. 五节点HadoopHA安装教程
  8. javascript --- 属性描述符
  9. 适用于Java开发人员的Elasticsearch教程
  10. 有没有词匹配算法_整站关键词SEO的匹配优化方法
  11. 联想YOGA四款新品齐发 跨设备新技术Lenovo One惊艳亮相
  12. c语言禁止优化某段代码,C语言优化小技巧
  13. Ubuntu二进制编辑器Hexdump
  14. C语言程序设计实验报告——实验三
  15. quartz mysql表文件_spring boot+Quartz+数据库存储
  16. “dying ReLU“问题
  17. html的自定义按钮,「HTML+CSS」--自定义按钮样式【003】
  18. C++并发编程(C++11到C++17)转载
  19. java中级工程师所需的技能_Java 工程师要具备哪些技能或技术?
  20. JS递归的用法JavaScript递归)

热门文章

  1. win11华为matebookxpro蓝牙开关消失解决办法
  2. [渝粤教育] 江西财经大学 大学体育与健康生活 参考 资料
  3. 11 月亚马逊云科技培训与认证课程,精彩不容错过!
  4. 解读湖北省8月双防政策,2022下半场化工厂人员定位大洗牌
  5. 杰里之 非 TWS 方案解决播放 wtg 提示音后蓝 牙音乐卡顿问题【篇】
  6. 流量累计程序 博途v15编写的西门子流量累计程序,封装好的FB块直接可以拿来用
  7. 544、RabbitMQ详细入门教程系列 -【手动消费确认】 2022.09.05
  8. 算法初探系列3 -深度优先搜索之剪枝策略
  9. 一键解决你“python卸载不干净怎么再重新安装”的烦恼
  10. 使用 2 个 ESP32 设备通过 AT 指令建立 BT 配对连接