Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 203|回复: 0

[默认分类] 2017 计蒜之道初赛第六场

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-25 14:10:36 | 显示全部楼层 |阅读模式


      

       微软手机的信号显示
       
       
       
       
    7 \times 77×7 个像素的区域来显示手机信号。满信号的时候显示如下:
       
    1. [/code]
    2.    
    3.      
    4.       
    5.      
    6.      
    7.       
    8.       
    9.         
    10.          
    11.          
    12.          
    13.          
    14.          
    15.            
    16.          
    17.          
    18.            
    19.             
    20.             
    21.               1
    22.             
    23.             
    24.             [code]+-----+
    复制代码
               
               
                
                
                  2
                
                
               
    1. |-  4G|
    复制代码
               
               
                
                
                  3
                
                
               
    1. |--   |
    复制代码
               
               
                
                
                  4
                
                
               
    1. |---  |
    复制代码
               
               
                
                
                  5
                
                
               
    1. |---- |
    复制代码
               
               
                
                
                  6
                
                
               
    1. |-----|
    复制代码
               
               
                
                
                  7
                
                
               
    1. +-----+
    复制代码
               
             
             
            
          
          
          
          
          
          
          
         
         
        每一格信号(第 i(1 \le i \le 5)i(1≤i≤5) 格信号有 ii个
    1. -
    复制代码
    )代表 20\%20% 的信号强度,不足一格信号的部分不显示。同时会在右上角显示当前的网络传输模式。在信号强度不低于 90\%90% 的时候显示
    1. 4G
    复制代码
    ;当信号低于 90\%90%、不低于 60\%60% 的时候显示
    1. 3G
    复制代码
    ;否则显示
    1. E
    复制代码

        对于给定的当前信号强度 d\%d%,输出信号的 7 \times 77×7 像素的图案。
        输入格式
        输入一个整数 d(0 \le d \le 100)d(0≤d≤100),表示信号强度。
        输出格式
        按照题目要求输出,每行末尾不要输出多余的空白字符。
       
       
         
         样例输入1
       
    1. 0
    复制代码

         
         
         样例输出1
       
    1. +-----+
    2. |    E|
    3. |     |
    4. |     |
    5. |     |
    6. |     |
    7. +-----+
    复制代码

         
         
         样例输入2
       
    1. 65
    复制代码

         
         
         样例输出2
       
    1. +-----+
    2. |-  3G|
    3. |--   |
    4. |---  |
    5. |     |
    6. |     |
    7. +-----+
    复制代码

         
       

    1. #include<cstdio>
    2. #include<iostream>
    3. #include<cstring>
    4. #include<algorithm>
    5. using namespace std;
    6. int d;
    7. int main()
    8. {
    9.     scanf("%d",&d);
    10.     if(d>=90)
    11.     {
    12.         cout<<"+-----+\n";
    13.         cout<<"|-  4G|\n";
    14.         cout<<"|--   |\n";
    15.         cout<<"|---  |\n";
    16.         cout<<"|---- |\n";
    17.         if(d==100)
    18.             cout<<"|-----|\n";
    19.         else
    20.             cout<<"|     |\n";
    21.         cout<<"+-----+\n";
    22.     }
    23.     else if(d>=60)
    24.     {
    25.         cout<<"+-----+\n";
    26.         cout<<"|-  3G|\n";
    27.         cout<<"|--   |\n";
    28.         cout<<"|---  |\n";
    29.         if(d>=80)
    30.             cout<<"|---- |\n";
    31.         else
    32.             cout<<"|     |\n";
    33.         cout<<"|     |\n";
    34.         cout<<"+-----+\n";
    35.     }
    36.     else
    37.     {
    38.         cout<<"+-----+\n";
    39.         if(d>=20)
    40.             cout<<"|-   E|\n";
    41.         else
    42.             cout<<"|    E|\n";
    43.         if(d>=40) cout<<"|--   |\n";
    44.         else cout<<"|     |\n";
    45.         cout<<"|     |\n";
    46.         cout<<"|     |\n";
    47.         cout<<"|     |\n";
    48.         cout<<"+-----+\n";
    49.     }
    50.     return 0;
    51. }
    复制代码


       
       
        近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目。在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ih​i​​ 层。每栋楼的每一层为一个独立的 办公区域,可以步行 直达同层相邻楼栋的办公区域,以及 直达同楼栋相邻楼层的办公区域。
       
        由于方案设计巧妙,上一层楼、下一层楼、向左右移动到相邻楼栋同层的办公区域均刚好需要 11分钟。在这些办公区域中,有一些被 核心部门 占用了(一个办公区域内最多只有一个核心部门),出于工作效率的考虑,微软希望核心部门之间的移动时间越短越好。对于一个给定的 最大移动时间 kk,大楼的 协同值 定义为:有多少个 核心部门对 之间的移动时间不超过 kk。由于大楼门禁的限制,不可以走出整个大楼,也不可以登上天台思考人生。你可以认为在办公区域内的移动时间忽略不计,并且在大楼内总是按照最优方案进行移动。
        对于一个给定的新大楼设计方案,你能算出方案的协同值么?
        输入格式
        第一行包含两个正整数 n,k(1\leq k\leq 200020)n,k(1≤k≤200020),分别表示大楼的栋数以及最大移动时间。
        第二行包含 nn 个正整数 h_1,h_2,...,h_n(1\leq h_i\leq 20)h​1​​,h​2​​,...,h​n​​(1≤h​i​​≤20),分别表示每栋楼的层数。
        接下来一行包含一个正整数 mm,表示 核心部门 个数。
        接下来 mm 行,每行两个正整数 x_i,y_i(1\leq x_i\leq n,1\leq y_i\leq h_{x_i})x​i​​,y​i​​(1≤x​i​​≤n,1≤y​i​​≤h​x​i​​​​),表示该核心部门位于第 x_ix​i​​ 栋楼的第 y_iy​i​​ 层。
        输入数据保证 mm 个核心部门的位置不会重复。
        对于简单版本:1\leq n,m\leq 501≤n,m≤50;
        对于中等版本:1\leq n\leq 200000,1\leq m\leq 20001≤n≤200000,1≤m≤2000;
        对于困难版本:1\leq n,m\leq 2000001≤n,m≤200000。
        输出格式
        输出一个整数,即整个大楼的 协同值。
        样例解释
        样例对应题目描述中的图,核心部门 11 和核心部门 33 之间的距离为 8>78>7,因此不能计入答案。
       
       
         
         样例输入
       
    1. 5 7
    2. 4 1 1 3 1
    3. 3
    4. 1 4
    5. 3 1
    6. 4 3
    复制代码

         
         
         样例输出
       
    1. 2
    复制代码

         
       

    1. //暴力,能过中等
    2. #include<cstdio>
    3. #include<iostream>
    4. #include<cstring>
    5. #include<algorithm>
    6. using namespace std;
    7. const int mn=200000+20;
    8. int n,k,nn;
    9. int m;
    10. int h[mn];
    11. struct node
    12. {
    13.     int x,y;
    14.     bool operator<(node t)const
    15.     {
    16.         return x<t.x;
    17.     }
    18. } a[mn];
    19. int ans;
    20. inline int read()
    21. {
    22.     int x=0,f=1;
    23.     char ch=getchar();
    24.     while(ch<"0"||ch>"9")
    25.     {
    26.         if(ch=="-")f=-1;
    27.         ch=getchar();
    28.     }
    29.     while(ch>="0"&&ch<="9")
    30.     {
    31.         x=x*10+ch-"0";
    32.         ch=getchar();
    33.     }
    34.     return x*f;
    35. }
    36. int main()
    37. {
    38.     n=read();
    39.     k=read();
    40.     for(int i=1; i<=n; i++)
    41.         h[i]=read();
    42.     m=read();
    43.     for(int i=0; i<m; i++)
    44.     {
    45.         a[i].x=read();
    46.         a[i].y=read();
    47.     }
    48.     sort(a,a+m);
    49.     for(int i=0; i<m; i++)
    50.     {
    51.         int x1,x2,mh,mmh,dis;
    52.         int j=i+1;
    53.         if(j<m&&a[j].x-a[i].x<=k)
    54.         {
    55.             x1=a[i].x,x2=a[j].x;
    56.             mh=a[i].y;
    57.             for(int i=x1; i<=x2; i++) mh=min(mh,h[i]);
    58.             mmh=min(mh,a[j].y);
    59.             dis=a[j].x-a[i].x+a[i].y+a[j].y-2*mmh;
    60.             if(dis<=k) ans++;
    61.             for(++j; j<m&&a[j].x-a[i].x<=k; j++)
    62.             {
    63.                 x1=x2+1;
    64.                 x2=a[j].x;
    65.                 for(int i=x1; i<=x2; i++) mh=min(mh,h[i]);
    66.                 mmh=min(mh,a[j].y);
    67.                 dis=a[j].x-a[i].x+a[i].y+a[j].y-2*mmh;
    68.                 if(dis<=k) ans++;
    69.             }
    70.         }
    71.     }
    72.     cout<<ans<<endl;
    73.     return 0;
    74. }
    复制代码



      
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-12 05:06 , Processed in 0.357453 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表