• luoguP3353 在你窗外闪耀的星星


    P3353 在你窗外闪耀的星星

    题目描述

    飞逝的的时光不会模糊我对你的记忆。难以相信从我第一次见到你以来已经过去了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)讲真这个题暴力完全可以过2333

    坑点:

      在进行输入的时候一定要biling[x]+=bil!!!!!!!!!!!

      一定!!!

      一定啊!!!

    代码:

    #include <algorithm>
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #define lson rt<<1
    #define rson rt<<1|1
    #define m ((l+r)>>1)
    using namespace std;
    
    const int M = 100000;
    int n,len,MAXX,MINX=233,ans,now;
    int biling[M + 1];
    
    struct A{
        int l,r;
        int num;
    }t[M*4 + 1];
    
    void build(int l,int r,int rt)
    {
        t[rt].l=l,t[rt].r=r;
        if(l==r)
        {
            t[rt].num=biling[l];
            return;
        }
        build(l,m,lson);
        build(m+1,r,rson);
        t[rt].num=t[lson].num+t[rson].num;
    }
    
    void ask(int rt,int nowl,int nowr)
    {
        int l=t[rt].l,r=t[rt].r;
        if(nowl<=l && nowr>=r)
        {
            now+=t[rt].num;
            return;
        }
        if(l==0 && r==0)
            return;
        int mv=(l+r)>>1;
        if(nowl<=mv) ask(lson,nowl,nowr);
        if(nowr>mv) ask(rson,nowl,nowr);
    }
    
    int main()
    {
        scanf("%d%d",&n,&len);
        for(int i=1,x,bil;i<=n;i++)
        {
            scanf("%d%d",&x,&bil);
            biling[x]+=bil;
            MINX=min(MINX,x);
            MAXX=max(MAXX,x);
        }
        if(len==0)
        {
            printf("0");
            return 0;
        }
        build(1,n,1);
        for(int i=MINX;i<=MAXX-len+1;i++)///qi dian
        {
            now=0;
            ask(1,i,i+len-1);
            ans=max(ans,now);
        }
        printf("%d",ans);
        return 0;
    }
    View Code 线段树版
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    
    const int N = 100010;
    int n,w,MAXX,ans;
    int awindow[N];
    int a[N];
    
    int main()
    {
        scanf("%d%d",&n,&w);
        if(w==0)
        {
            printf("0");
            return 0;
        }
        for(int i=1,x,biling;i<=n;i++)
        {
            scanf("%d%d",&x,&biling);
            awindow[x]+=biling;
            MAXX=max(x,MAXX);
        }
        for(int i=1;i<=w;i++)
            ans+=awindow[i];
        a[w]=ans;
        for(int i=w+1;i<=MAXX;i++)
        {
            a[i]=a[i-1]+awindow[i]-awindow[i-w];
            ans=max(ans,a[i]);
        }
        printf("%d",ans);
        return 0;
    }
    View Code baoli

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    一步一步学Silverlight 2系列(16):数据与通信之JSON
    一步一步学Silverlight 2系列(15):数据与通信之ASMX
    谈一谈做iOS播放器库开发所涉及的知识点
    回顾大学生活
    iOS 简化冗余代码
    修正DejalActivityView在iOS8之前系统上存在的Bug
    2015年,你要做什么(一)
    iOS学习笔记
    IOS SDK详解
    iOS开发进阶
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/7142404.html
Copyright © 2020-2023  润新知