• LA 4665 Favorite Time 模拟


    题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2666

    这个题的意思有点没说清楚,不知道最频繁指的什么,后来队友指点,直接开一个1440大的数组存每一分钟的状态,然后找出最大的次数,然后第一次出现这样的次数的一段。为了统计,在最后补了一个-1;


    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<sstream>
    using namespace std;
    
    string format(int n)
    {
      string ans="";
      stringstream ss;
      ss<<n;
      ss>>ans;
      if(n==0) ans="00";
      else if(n<10)  ans="0"+ans;
      return ans;
    
    }
    int main()
    {
    
        int T;
        cin>>T;
        int n;
        while(cin>>n)
        {
           int p[1441]={0};
    
    
           int shour,smin,ehour,emin;
           for(int i=0;i<n;i++)
              {scanf("%d:%d %d:%d",&shour,&smin,&ehour,&emin);
    
                for(int i=shour*60+smin;i<=ehour*60+emin;i++)
                 p[i]++;
    
              }
           int max=0;
           for(int i=0;i<1440;i++)
             if(p[i]>max)  max=p[i];
    
           p[1440]=-1;   //为了统计用
    
    
    
    
           int begin=0,end=0;
    
           for(int i=0;i<1441;i++)
             if(p[i]==max)
             {
                if(i==0)  {begin=0;  break;}
    
                if(i>0&&p[i-1]!=max)
                {
                   begin=i;  break;
                }
             }
    
          for(int i=0;i<1440;i++)
          if(p[i]==max&&p[i+1]!=max)
          {
              end=i;
              break;
    
          }
    
    
    
            cout<<format(begin/60)<<":"<<format(begin%60)<<" "<<format(end/60)<<":"<<format(end%60)<<endl;
    
        }
    
    }
    


  • 相关阅读:
    我要变牛逼
    java web
    导师选择
    2.1进程
    来到博客园写东西的第一天
    简单的页面布局
    html5
    第一个servlet程序
    java2D
    字节流 文件字节流 缓冲字节流
  • 原文地址:https://www.cnblogs.com/814jingqi/p/3280293.html
Copyright © 2020-2023  润新知