時間限制: 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...