• pat甲级1014


    5个小时的debug体验,很酸了(一开始把m和n弄混,后来又发现只要在540之前接受服务就可以算成功。解法十分的粗暴,一分钟判断一次的逻辑.....代码不算复杂,细节比较恼人,不适合我这种无脑马大哈

     1 #include <iostream>
     2 #include <vector>
     3 #include <queue>
     4 
     5 using namespace std;
     6 
     7 int main(void)
     8 {
     9     //queue<int> wait;
    10 
    11     int n, m, k, q;
    12     cin >> n >> m >> k >> q;
    13     vector<int> cost_time(k + 2);//end
    14     vector<int> beg_time(k + 2, 541);//开始被服务
    15     for (int i = 0;i < k;i++)
    16         cin >> cost_time[i];
    17     vector<queue<int> > win(n);
    18     for (int i = 0;i < n;i++)//第一批入黄线
    19     {
    20         if(i<k)//记得加判断,有一个测试点n>k
    21             beg_time[i] = 0;
    22         for (int j = 0;j < m;j++)
    23         {
    24             if (n*j + i >= k)break;
    25             win[i].push(n*j + i);
    26         }
    27     }
    28 
    29     
    30     int next = n*m;//下一个入队,也有k<n*m的情况,不过下面做了判断
    31     for (int times = 1;times<540;times++)
    32     {
    33         for (int w = 0;w < n;w++)
    34         {
    35             if (win[w].empty())continue;
    36             int cus = win[w].front();
    37             if (cost_time[cus] == times&&beg_time[cus] < 540)
    38             {
    39                 win[w].pop();
    40     
    41                 if (next < k)win[w].push(next++);
    42                 if (!win[w].empty())
    43                 {
    44                     cost_time[win[w].front()] += cost_time[cus];
    45                     beg_time[win[w].front()] = cost_time[cus];
    46                 }
    47             }
    48         }
    49     }
    50     //give ans
    51     for (int i = 0;i < q;i++)
    52     {
    53         int query;
    54         cin >> query;
    55         if (beg_time[query - 1] >= 540)
    56         {
    57             printf("Sorry
    ");
    58             continue;
    59         }
    60 
    61         int h = 8 + cost_time[query - 1] / 60, m = cost_time[query - 1] % 60;
    62         printf("%02d:%02d
    ", h, m);
    63     }
    64 
    65     return 0;
    66 }
  • 相关阅读:
    Spring MVC的Controller统一异常处理:HandlerExceptionResolver
    spring mvc 404页面制作
    MyEclipse导出可运行的jar包
    Spring的编程式事务和声明式事务
    数据库SQL优化大总结
    LinkedList源码及原理
    ArrayList源码分析
    HashMap源码及原理
    Java集合框架常见面试题
    idea获取激活码
  • 原文地址:https://www.cnblogs.com/schsb/p/8833161.html
Copyright © 2020-2023  润新知