選拔賽總結

2021-09-11 19:12:17 字數 4390 閱讀 8143

時間限制: 1 sec  記憶體限制: 512 mb

提交: 18  解決: 9

[提交] [狀態] [討論版] [命題人:admin]

題目描述

手機端qq推出了貼表情的新功能,復讀機勢力再次猖狂起來,她們把表情貼的到處都是!裙主決定把被復讀次數最多的表情從聊天記錄中刪去。

聊天框是乙個大小為n x m的黑白點陣。背景色是白色。我們定義「表情」是由黑色色塊組成的極大四連通塊。你的任務是找出聊天框**現次數最多的表情,把這些表情都塗成白色,然後把處理好的聊天框輸出出來。

保證表情的大小都小於32 x 32。

保證出現次數最多的表情只有一種。

「極大四連通塊」的定義為:從某乙個黑色格仔出發,向上下左右四個方向任意移動,且移動時不經過白色格仔,通過這種移動方式能到達的所有黑色點稱為乙個「極大四連通塊」。

請參照樣例理解題意。

輸入第一行兩個整數n和m。 (1

=< n, m <= 1000)

接下來n行,每行乙個長度為m的字串。表示整個n x m的聊天框。

其中使用`.`來表示白色,使用`x`表示黑色。

輸出輸出n行,每行乙個長度為m的字串。表示處理之後的聊天框。

樣例輸入

10 40

........................................

..x..x..x..x.....******...x...x..x......

..x..x..x..x.....x........x...x..x......

..x..x..x..x.....x........x...x..x......

..x..x..x..x.....***xx....x...x..x......

..x..x..******.......x....x...******....

..x..x.....x.........x....x......x......

..x..x.....x.........x....x......x......

..x..x.....x.....***xx....x......x......

........................................

樣例輸出

........................................

........x..x.....******.......x..x......

........x..x.....x............x..x......

........x..x.....x............x..x......

........x..x.....***xx........x..x......

........******.......x........******....

...........x.........x...........x......

...........x.........x...........x......

...........x.....***xx...........x......

........................................

思路:

dfs+map

超級神奇,每次dfs然後向上,右,下,左走分別對應的是字元'0','1','2','3',這樣一次dfs下來就可以得到乙個字串,然後用map存字串出現的次數。

並用map>ppp; 來存這個字串對應的所有的起始位置,(p定義的是pair型別,存橫縱座標)

然後再dfs一次,消滅最多出現的表情就可以啦~

**如下:

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

typedef pairp;

const int inf=0x3f3f3f3f;

const int n=1010,mod=32767;

char mape[n][n],mape1[n][n];

string s;

int dx[4]=,dy[4]=;

int n,m;

mapqqq;

map>ppp;

void dfs(int x,int y)

}}void dfs1(int x,int y)

}}int main()

getchar();

}for(int i=1;i<=n;i++)}}

int mx=0;

string tmp;

for(map::iterator it=qqq.begin();it!=qqq.end();it++)

}for(int i=0;i時間限制: 1 sec  記憶體限制: 128 mb

提交: 235  解決: 17

[提交] [狀態] [討論版] [命題人:admin]

題目描述

在體育課上,同學們常常會遲到幾分鐘,但體育課j老師的點名卻一直很準時。老師只關心同學的身高,他會依次詢問當前最低的身高,次低的身高,第三低的身高,等等。也就是說,老師在第i次詢問時,會問第i高的同學身高是多少。在詢問的過程中,會不時地有人進入隊伍中,每位同學進入後,老師可能不詢問,也可能進行乙個或多個詢問。

現在讓你回答老師每次的詢問。

輸入第一行兩個整數 n m,表示先後有 n 個人進隊,老師詢問了 m 次

第二行 n 個整數,第 i 個數 ai 表示第 i 個進入隊伍的同學的身高為 ai

第三行 m 個整數,第 j 個數 bj 表示老師在第 bj 個同學進入隊伍後有一次詢問

1 =輸出

m 行,每行乙個整數,依次表示老師每次詢問的答案。資料保證合法

樣例輸入

7 49 7 2 8 14 1 8

1 2 6 6

樣例輸出

997

8

提示

樣例解釋:

第1個同學進入後進行第1次詢問,當前隊伍:(9)  詢問結果:;

第2個同學進入後進行第2次詢問,當前隊伍:(9 7)  詢問結果: ;

第6個同學進入後進行第3次和第4次詢問 ,當前隊伍: (9 7 2 8 14 1)  詢問結果:

思路:

一想到插入時有序,我就想用multiset,但是,set有個缺陷,它無法快速找到第i的元素,我們可以用vector實現這一功能,用vector插入時,每次先vector::iterator it=lower_bound(a.begin(),a.end(),b[j])

然後a.insert(it,b[j]);

(好機智啊= =)

**如下:

總結:

emmm,怎麼說呢,結果還是很開心的,得到了去天梯賽和省賽的名額,這可是我夢寐以求了一年的qwq。

但是,我還是經驗不足,這次比賽,本來4小時,老師又延長了1小時,我暈死,因為中午飯就吃的可少,最後一小時的時候就頂不住了,沒勁+腦殼疼,我開始放棄**,喝奶茶ing,然後又讓a題多wa了幾次,就這麼消磨時間……直到……

最後20分鐘,我突然有了復讀機那題的思路!!!

然後開始馬上馬立刻立的敲,dev好難用,手速慢,嗚嗚嗚,然後就沒寫完。

總之,stl運用不熟練,雖然有遺憾,但是,結果是好的qwq

以後也要加油呀~

選拔賽 旅遊

傳送門 首先有3種風景點,因此對應就有8種狀態 狀態表示的是到某個點經過的風景點有哪些 到每個點都有8種狀態,記錄狀態的話用的是dis陣列的第二維 將第二維j轉化為乙個二進位制數對應有3位,第一位表示的是a類風景點的狀態,第二位表示的是b類風景點的狀態,第三位表示的是c類風景點的狀態,對應的數字若是...

個人選拔賽1總結

比賽鏈結 今天又全跪了,0題,我想哭,不過比賽就是這樣,生活還得繼續,不能放棄,真的,沒關係,好好總結,以後多做總結,多看看以前做的題,溫故而知新,手腦要配合一起思考,每天總結當天的收穫,不足要加以改進,嚴格對待自己的缺點,每天與自己比,不要和別人比,每個人的情況都不相同,每天要贏自己一把,注意休息...

選拔賽之 kmp

自己稀里糊塗就過了,原來是資料水。但也還是不知道自己的 其實能不能過,還是先放一下,再看看能不能看得懂。id 97 對s串做個kmp得到fail陣列,答案就是 n s.length while fail n 1 ans.push back s.length fail n n fail n 證明 由f...