上次比賽最後時間緊慌了,沒好好審題,有乙個重要條件沒好好利用,還瞎排序。
也就是詢問和操作的時間都是按順序給出的,只需要按照他給的順序依次操作就行了。
還有乙個條件就是
這個保證同樣非常重要,再一次驗證只需要按照給出的順序操作,因為同時課的詢問一定在更新之後。
然後具體思路就是這樣:
首先維護乙個儲存傳播更新操作的佇列
struct op
;vectorop;
(這個佇列的自然順序就是按時間順序的,因為我們新增op的時候本身已經是按時間先後選項入隊了)
當需要更新的時候,我們
首先執行乙個update(time)操作,update(time)用來處理在time時間之前所有的傳播更新操作,也就是把佇列中time小於當前time的都執行然後出隊。
然後在更新a這個節點
最後把a的傳播操作存入佇列op
就大功告成了。
然後是查詢:
查詢首先也是upate(time)
然後直接輸出a的鏈就ok了。
大致流程就是如下:
if(type==2)
;vectorop;
int head, tail;
vectorblock[505];
vectoredg[505];
int n, m, t, k;
char buf[105];
int input[5];
int read(char a)
}input[cnt]=sum;
cnt++;
return cnt;
}void add_op(int id, int tim, vectorq)
void update(int tim)
else if(q.size()==block[to].size())
for(int i=1; i<=n; i++)block[i].ps(0);
scanf("%d%d\n", &t, &k);
// cout<
int l;
while(k--)
else
}return 0;}/*
5 10
1 21 3
1 41 5
2 32 4
2 53 4
3 54 5
1 27
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
1 12 1
3 14 1
5 11 2
2 23 2
4 25 2
1 10 10
2 11 9
1 11
2 11
3 11
4 11
5 11
1 12
2 12
3 12
4 12
5 12
*/
第十八次CCF認證感想
成績出的很快,第二天就有了,提交了三道題,全部都過了,而且全是1a,還是很開興的。第四題感覺有時間的話還是有希望做出來的,我認為演算法是對每個結點進行一次spfa,不知道對不對,要看大佬們五花八門,五顏六色,亂七八糟的題解了。我有信心思路應該沒問題,因為演算法要更新每個結點主鏈的資訊,直到所有的結點...
第十八次學習總結
學習總結 最近自我感覺不是很好,學習效率也不高,總是在乙個問題上浪費了很長時間。小組安排的學習計畫本來是10天,但是我到現在還沒學完。對於我進度慢的原因進行以下分析 一 時間安排不妥當,近期學院組織團支書風采大賽,經常去排練但是排練完並沒第一時間的去小組學習,而是繼續在玩,有的時候還在在偷懶。三 學...
第十八次發博不知道用什麼標題好
類的繼承 過載 是讓類以統一的方式處理不同型別的資料的一種手段,實質表現就是多個具有不同引數個數或者型別的同名函式,呼叫時通過傳遞不同引數個數和型別決定具體使用了哪個方法的多型性 重寫 是父類與子類之間的多型性,e 在子類中定義某方法與父類相同的名稱和引數,如果子類中的方法與父類中的方法具有相同的方...