日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]【CF簡介】題目鏈接:CF 704A題面:A. Thor time limit per test 2 seconds memory limit per test 256 megabytes in

【CF簡介】


題目鏈接:CF 704A


題面:


A. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

Thor is getting used to the Earth. As a gift Loki gave him a smartphone. There aren applications on this phone. Thor is fascinated by this phone. He has only one minor issue: he can't count the number of unread notifications generated by those applications (maybe Loki put a curse on it so he can't).

q events are about to happen (in chronological order). They are of three types:

Application x generates a notification (this new notification is unread). Thor reads all notifications generated so far by application x (he may re-read some notifications). Thor reads the first t notifications generated by phone applications (notifications generated in firstt events of the first type). It's guaranteed that there were at leastt events of the first type before this event. Please note that he doesn't read firstt unread notifications, he just reads the very firstt notifications generated on his phone and he may re-read some of them in this operation.

Please help Thor and tell him the number of unread notifications after each event. You may assume that initially there are no notifications in the phone.

Input

The first line of input contains two integers n andq (1?≤?n,?q?≤?300?000)?— the number of applications and the number of events to happen.

The next q lines contain the events. Thei-th of these lines starts with an integertypei?— type of thei-th event. If typei?=?1 ortypei?=?2 then it is followed by an integerxi. Otherwise it is followed by an integerti (1?≤?typei?≤?3,?1?≤?xi?≤?n,?1?≤?ti?≤?q).

Output

Print the number of unread notifications after each event.

Examples Input

3?4
1?3
1?1
1?2
2?3

Output

1
2
3
2

Input

4?6
1?2
1?4
1?2
3?3
1?3
1?3

Output

1
2
3
0
1
2

Note

In the first sample:

Application 3 generates a notification (there is 1 unread notification). Application 1 generates a notification (there are 2 unread notifications). Application 2 generates a notification (there are 3 unread notifications). Thor reads the notification generated by application 3, there are 2 unread notifications left.

In the second sample test:

Application 2 generates a notification (there is 1 unread notification). Application 4 generates a notification (there are 2 unread notifications). Application 2 generates a notification (there are 3 unread notifications). Thor reads first three notifications and since there are only three of them so far, there will be no unread notification left. Application 3 generates a notification (there is 1 unread notification). Application 3 generates a notification (there are 2 unread notifications).


題意:

??? 此題背景是手機(jī)app產(chǎn)生未讀消息,有n款app,對應(yīng)三種事件,事件一,x號app產(chǎn)生一條新的未讀消息。事件二,雷神讀了x號app的所有未讀信息。事件三,雷神讀了最開始的t條消息,(這些就是按順序產(chǎn)生的app消息,不管讀沒讀)。每次事件后,都要輸出當(dāng)前的未讀消息數(shù)。


解題:

?? 解法中,數(shù)據(jù)結(jié)構(gòu)采用一個消息列表,記錄消息,一個數(shù)量數(shù)組,對應(yīng)每個app未讀消息數(shù),一個消息向量數(shù)組,對應(yīng)每個app產(chǎn)生的消息記錄的下標(biāo),一個pos數(shù)組,記錄每個app當(dāng)前已經(jīng)處理過最后一條信息的后一個位置,一個sum值記錄總未讀消息數(shù),一個p值記錄時間順序上通過操作三當(dāng)前處理過的最后一條消息位置。

??? 對應(yīng)操作一,可以設(shè)計一個消息列表,每產(chǎn)生一條新的消息,記錄該消息的產(chǎn)生app編號,以及一個標(biāo)志代表該條消息是否已讀,同時給該app對應(yīng)的數(shù)量數(shù)組數(shù)量加一,該款app的向量數(shù)組記錄該條消息下標(biāo),未讀消息總數(shù)加一。

??? 對應(yīng)操作二,可以從該款app的pos數(shù)組中獲取到該款app最后處理的一條未讀信息的后一個位置,并開始往后掃描讀,標(biāo)記該條消息為已讀。同時,總未讀消息數(shù)減去該app對應(yīng)未讀消息數(shù),并將該app未讀消息數(shù)清零,更新最后處理未讀消息的后一個位置信息。

??? 對應(yīng)操作三,只要從p(當(dāng)前處理過最后一個位置開始處理即可),這個過程中會遇到未讀和已讀消息,已讀的直接跳過,未讀的需要標(biāo)記已讀,同時總sum值(未讀消息數(shù))減一,對應(yīng)的該消息產(chǎn)生app的未讀數(shù)量數(shù)組的值也要減一。

?? 總的復(fù)雜度是O(n),因為每條消息最多只會產(chǎn)生一遍,讀一遍。


代碼:


#include#include#include#include#define?LL?long?long
#define?sz?300010
using?namespace?std;
struct?info
{
	int?id;
	bool?vis;
}store[sz];
int?amount[sz];
int?pos[sz];
vectorv[sz];
int?main()
{
????int?sum=0,n,q,a,b,p=0,cnt=0;
????scanf("%d%d",&n,&q);
????for(int?i=0;i<q;i++)
????{
????	scanf("%d%d",&a,&b);
????	if(a==1)
????	{
	????	v[b].push_back(cnt);
	????	amount[b]++;
	????	sum++;
	????	store[cnt].vis=0;
	????	store[cnt].id=b;
	????	cnt++;
	????}
	????if(a==2)
	????{
????		sum-=amount[b];
????		amount[b]=0;
????		for(int?j=pos[b];j<v[b].size();j++)
????		{
		????	store[v[b][j]].vis=1;
		????}
		????pos[b]=v[b].size();
????	}
????	if(a==3)
????	{
	????	for(int?j=p;j<b;j++)
	????	{
	????		if(!store[j].vis)
	????		{
		????		store[j].vis=1;
		????		sum--;
		????		amount[store[j].id]--;
		????	}
	????	}
	????	p=max(p,b);
	????}
	????printf("%dn",sum);
????}
	return?0;
}



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉