题目

题目描述

飞逝的的时光不会模糊我对你的记忆。难以相信从我第一次见到你以来已经过去了3年。我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的脸颊。我明白,我已经沉醉于你了。之后,经过几个月的观察和窥探,你的优雅与智慧,你对待生活的态度和你对未来的愿望深切地在我心中留下了印象。你是迷人的阳光女孩,我总是梦想着与你分享余生。唉,实际上你远远超过了我最疯狂的梦想。我不知道如何桥起我与你之间的鸿沟。所以我没有任何计划,仅仅只是等待,等待一个适当的机会到来。直到现在,毕业的到来,我意识到我是个傻瓜,我应该创造机会并且抓住它而不只是等待。

这些日子里,我和我的朋友、室友、同学一个接一个地分开。我仍无法相信,在挥手之后,这些熟悉的面孔很快就会从我们的生活中消失,仅仅留下回忆。我明天就将离开学校。你已经计划远走高飞,追求你的未来,实现你的梦想。如果没有命运,也许我们不会再次相遇。所以今晚,我正在你的宿舍楼下徘徊,希望能偶然遇见你。但矛盾的是,你的美貌一定会使我心跳加速,我笨拙的舌头也许无法吐出一个字。我不记得我曾多少次经过你的宿舍楼,每次都希望看到你出现在阳台上或是窗台上。我不记得这个想法曾多少次在我的脑海中涌出:打电话叫她一起吃晚饭或是聊聊天。但每次,考虑到你的优秀和我的平凡,胆怯的优势超越勇气驱使我静静地离开。

毕业,意味着中学生活的终结。这些光荣与浪漫的时代结束。你可爱的微笑是我原来努力学习的动力,这单相思的爱情会被密封,作为一个我心灵深处的记忆。毕业,也意味着新生活的开始,一个到达光明未来的足迹。我真希望你在国外天天开心,一切顺利。同时,我将努力从幼稚中走出来,变得更加成熟。我的理想将是在现实中追求我的爱与幸福,我永远不会放弃。

再见了,我的公主!

如果有一天,在某个天涯海角,我们有机会相聚,即使是白发苍苍的男人和女人,在那个时候,我希望我们可以成为好朋友来自豪地分享这个记忆,重温年轻快乐的激情。如果这个机会永远没有到来,我希望我是天空中的星星,在你的窗外闪烁。远远地保佑着你,就像一个朋友,每天晚上陪伴在你左右,一同分享甜美的梦亦或是一同经历可怕的梦。

现在问题来了:天空可以理解为一条数轴,在这条数轴上分布着许多颗星星,对于每颗星星都有它的位置Xi和自身的亮度Bi。而窗户所能看到的范围是一个给出的参数W,我们看到的星星也包括窗户边缘的星星。现在,要你求出调整窗户位置后能看到星星的亮度之和最大值。

输入输出格式

输入格式:

一行N,W,分别代表星星的数量和窗户的宽度

余下N行,输入Xi和Bi,代表星星的坐标和亮度

输出格式:

一个数字,代表能看到星星的最大亮度和

输入输出样例

输入样例#1:
6 3
1 2
2 4
3 8
4 4
5 2
1000 1

输出样例#1:
16

  

说明

样例说明:

对于10%的数据,W=0(没有边缘)

对于40%的数据,W<=1000

对于100%的数据,N<=100000,W<=100000,Xi<=100000,1<=Bi<=100

除W=0的情况外,W均为>=3的奇数


这道题完全可以用前缀和水过,因为没有区间修改这个操作,但是为了练习线段树,我们还是老老实实用线段树做吧。

应该注意的有两个地方:

1.同一个坐标上面可能有好几个星星

2.数据范围一定要开long long。

因为没有区间修改,所以连懒标记都不用加,只用build和ask_interval。

代码:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;int n, m, c, b;
long long ans;
long long a[100008];
struct node {int l, r;long long sum;
}tree[400008];void build(int k, int ll, int rr) {tree[k].l = ll, tree[k].r = rr;if(ll == rr) {tree[k].sum = a[ll];return ;}int mid = (tree[k].l+tree[k].r)/2;build(k<<1, ll, mid);build((k<<1)+1, mid+1, rr);tree[k].sum = tree[k<<1].sum+tree[(k<<1)+1].sum;
}void ask_interval(int k) {if(tree[k].l >= c&&tree[k].r <= b) {ans += tree[k].sum;return ;}int mid = (tree[k].l+tree[k].r)/2;if(c <= mid) ask_interval(k<<1);if(b > mid) ask_interval((k<<1)+1);
}int main() {scanf("%d%d", &n, &m);long long maxn = -1;for(int i=1; i<=n; i++) {long long x;cin>>x;long long h;cin>>h;a[x]+=h;if(x >= maxn) maxn = x;}build(1, 1, maxn);long long s = maxn;maxn = -1;for(int i=1; i<=s-m+1; i++) {ans = 0;c = i, b = i+m-1;ask_interval(1);if(maxn <= ans) maxn = ans;}printf("%lld\n", maxn);
}

作者:wlz
出处:http://www.cnblogs.com/bljfy/p/8705872.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/bljfy/p/8705872.html

Luogu P3353 在你窗外闪耀的星星相关推荐

  1. 洛谷 P3353 在你窗外闪耀的星星

    洛谷  P3353 在你窗外闪耀的星星 题目描述 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室, ...

  2. 洛谷——P3353 在你窗外闪耀的星星

    P3353 在你窗外闪耀的星星 题目描述 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向 ...

  3. 【洛谷】【线段树】P3353 在你窗外闪耀的星星

    [题目描述:] /* 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀 ...

  4. 洛谷—— P3353 在你窗外闪耀的星星

    https://www.luogu.org/problem/show?pid=3353 题目描述 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年 ...

  5. 【Python】【C语言】P3353 在你窗外闪耀的星星

    题目背景 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了 3 年.我仍然还生动地记得,3 年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫 ...

  6. [洛谷]P3353 在你窗外闪耀的星星 (#树状数组)

    题目描述 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的 ...

  7. P3353 在你窗外闪耀的星星

    黄题爆冷了怎么办在线等挺急的啊... 题目背景我很认真地看完了. 我哭了,你们呢? 一拳一个泪目怪 这道题一眼看上去就是一个前缀和的.然后我就兴致冲冲地写了一发,交上去10pt,WA声一片. 最初的想 ...

  8. [洛谷]P3353 在你窗外闪耀的星星

     这题使用前缀和即可求解,毕竟是求某个数组的某个固定范围内和的最大值,但值得注意的是,某个位置可能会有多个星星叠加,所以亮度也是要累计的,且这里的长度1应该是指1这个位置所占的长度,比如窗的宽度是3, ...

  9. P3353 在你窗外闪耀的星星————树状数组,前缀和

    题解:本题主要考查树状数组的区间之和的最大值,用树状数组和前缀和(注意:一个位子可以放多个点) 代码如下: #include<iostream> #include<algorithm ...

最新文章

  1. 基于opencv的简单视频处理类示例
  2. 什么是以太坊?它到底怎么运作的?
  3. sar偏移量追踪技术_论文推荐 | 吴文豪:基于几何配准的多模式SAR影像配准及其误差分析...
  4. 微软和谷歌的人工智能,在SuperGLUE基准测试中超越了人类
  5. 《深入理解Java虚拟机》读书笔记七
  6. OpenCV学习记录(二):自己训练haar特征的adaboost分类器进行人脸识别
  7. NYOJ 52 无聊的小明
  8. (转).gitignore详解
  9. JavaScript对象与事件
  10. 干货丨总结5类面试官特点和应对方法
  11. AngularJS-模型和控制器
  12. MYSQL相关学习-常用语句
  13. Spring @Bean @Scope @Qualifier
  14. js让显示层居中且有遮挡层(IE,火狐,Chrome均可)
  15. 知识图谱研讨实录08丨肖仰华教授带你读懂知识图谱的质量控制
  16. 聊聊spring data jpa的JpaQueryLookupStrategy
  17. matlab心电滤波,应用Matlab对人体的心电信号进行滤波
  18. windows安装和配置阿帕奇+PHP服务器
  19. 2009年10月 档案_39健康博客_benwen520dan
  20. 网络空间安全——2021软科中国大学专业排名

热门文章

  1. 短视频行业风头正劲,美摄SDK视音频处理技术全面助推
  2. 怎样让Eclipse的智能提示像VS一样霸气
  3. Q1营收19.4亿增收不增利,更名后的跟谁学如何走向“高途”?
  4. 【游戏开发解答】Unity使用lua将table转为树结构,以多级折叠内容列表的UI形式展现(树结构 | UGUI | 折叠展开 | lua)
  5. 多线程与高并发-volatile与CAS
  6. java 第四章 面向对象(下)继承和多态
  7. 利用python爬取当乐网游戏评论简单数据分析
  8. Android 12 内置系统默认动态壁纸(视频资源)实现
  9. android+获取未接电话,如何统计Android中未接电话的数量
  10. 【小程序源码】升级版王者荣耀铭文多功能助手微信小程序源码下载