1014.Waiting in Line (30)…to be continued…
pat-al-2014
2017-02-16
參考:1014. Waiting in Line (30)-PAT甲級真題一個問題:代碼的67行左右有一句:window[minWindow].q.push(T[index]);在上述參考的博客中寫的是window[tempwindow].q.push(tempmin);雖然都能AC,但個人認為是有區別的,所以,到底是等價的還是有一個人寫錯了只是測試點沒測出來啊?/** * pat-al-2014 * 2017-02-16 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<queue>using namespace std;struct NODE{ int popTime; int endTime; queue<int> q;};int main(){ freopen("in.txt", "r", stdin); int n, m, k, q, index = 1; scanf("%d%d%d%d", &n, &m, &k, &q); int T[k]; for(int i = 1;i <= k;i++) scanf("%d", &T[i]); vector<NODE> window(n+1); vector<int> result(k+1); vector<bool> sorry(k+1, false);//一個新嘗試 for(int i = 1;i <= m;i++)//初始化,先把n*m的位置填滿 { for(int j = 1;j <= n;j++) { if(index <= k) { window[j].q.push(T[index]); if(i == 1) window[j].popTime = T[index]; if(window[j].endTime >= 540) sorry[index] = true; window[j].endTime += T[index]; result[index] = window[j].endTime; } index++; } } while(index <= k)//如果存在排在m*n之后的人,按照題意排隊 { int minTime = window[1].popTime, minWindow = 1; for(int i = 2;i <= n;i++) { if(window[i].popTime < minTime) { minWindow = i; minTime = window[i].popTime; } } window[minWindow].q.pop(); window[minWindow].q.push(T[index]); -TBC新聞熱點
疑難解答