(續)上次周賽兩道題 kmp,bfs

2021-07-04 11:39:19 字數 2890 閱讀 2512

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

某天某個人想去買一條手鍊,但是她比較挑剔,不但想要最美麗的,又想要最長的,手鍊的顏色可以比較多,但是又不能毫無規律的顏色多而已。她要買的手鍊必須是顏色夠多,還要有規律,什麼叫做有規律?就是有迴圈的。假如給定參照手鍊「rgb」,再給乙個手鍊比如「rgbrgbrgb」它包含了3個參照手鍊。此人稱包含值為:美麗度。因為包含3個參考串,所以這個手鍊美麗度就為3.

她想要買乙個美麗度大於1的手鍊,但是又不能只有一種顏色,怎麼挑乙個最好的呢?這個問題有點難想,現在她向你求助,希望你可以幫助她選擇。

有多組測試資料,輸入先給出參考手鍊(參考手鍊長度大於1),然後輸入乙個t(0輸出資料也有t行,每行輸出,最大美麗度,和相應的手鍊。如果美麗度相同就輸出手鍊最長的,看下面測試樣例。

rgb

4rgbrgb

rgbrgbrgb

rgbwrgbwrgbw

rgrgbrggrbg

rww3

rwwwwr

rwwwwrw

rwrwrw

wwr5

wwrww

wwwrwwrwr

wwwwwwww

wrwrwrwr

wrrwrwrwww

3 rgbwrgbwrgbw

1 rwwwwrw

2 wwwrwwrwr

上次周練的一道題,考察的 kmp 演算法,雖然很快就敲出來並提交了,但是一直wa,費盡心思找了很久,也沒發現問題所在,也就沒整理,今天算是知道問題出在哪了,也算是解決了問題了

自己的演算法和思路一點都沒錯,錯就錯在自己的條件判斷錯了,本以為能行使相應的功能,卻沒想到因為自己的一時大意,斷送了整個題,明明會做的題,非要等到最後發現是小地方出錯後,讓自己懊悔,這樣真的很不應該,細節決定成敗,不能太粗心,否則只能一事無成..

#include#include#define maxn 10005

int lenx,p[maxn*100],cnt;

char x[maxn*100];

struct xuandx

y[25];

void getp() //求出 p 陣列

}printf("%d %s\n",y[k].x,y[k].s); //輸出最優解

} return 0;

}

時間限制: 2 sec  

記憶體限制: 128 mb

可憐的公主又被魔王抓走了。魔王這次準備在t時刻與公主成親,不過公主深信智勇的騎士肯定能將她救出。

已知:公主被關在乙個兩層的迷宮裡,迷宮的入口是s(0,0,0),公主的位置用p表示,時空傳輸機用#表示,牆用*表示,平地用 . 表示。

騎士一進入時空傳輸機就會被轉到另一層的相對位置(沒有選擇的餘地),但如果被轉到的位置是牆的話,那就會game over....

騎士在一層中只能前後左右移動,每移動一格花乙個單位時間。層間的移動只能通過時空傳輸機(兩個傳輸機不會在同乙個位置的兩層出現),且不需要任何時間。

輸入有多組測試資料。

每個測試資料的前一行有三個整數n,m,t。 n,m迷宮的大小n*m(1 <= n,m <=10)。t如上所意。

接下去的前n*m表示迷宮的第一層的布置情況,後n*m表示迷宮第二層的布置情況。

如果騎士能夠在t時刻能找到(找到就可以)公主就輸出「yes」,否則輸出「no」。

1 4 2

.#.#

*.#p

no
這個題是簡單的 bfs 但是自己在賽場上沒做出來,原因不是自己不會做,而是前面的題目把所有的時間都浪費掉了,這個題已經沒餘地來做了...以後做題,遇到難題千萬別鑽牛角尖,可能後面的題目比前面的還要簡單,固執害的只能是自己,倒不如讓步一下,記住讓步不是放棄,而是為了更好的前進

#include#include#includeusing namespace std; 

int v[2][15][15],n,m,t,kase;

int fy[4]=,fz[4]=;

char x[2][15][15];

struct mg

site,temp;

void bfs()

if(x[site.x][site.y][site.z]=='p')

for(int i=0;i<4;++i)

if(x[tx][ty][tz]=='#')

if(!v[tx][ty][tz]&&x[tx][ty][tz]!='*')

} }

} int main()

{ int i,j,k;

while(scanf("%d%d%d",&n,&m,&t)!=eof)

{ for(i=0;i<2;++i)

{ getchar();

for(j=0;j

上次比賽算是給自己留下了比較深刻的記憶,因為自己多方面的原因,導致成績很不理想,反思下來,主要有幾點:

第一:知識,考察的內容掌握的不紮實,有時候按自己的理解,很可能會出問題,學習還是要虛心點,不能好高騖遠,一步一步踏實點才是王道,

第二:粗心,至少有三道題,因為馬虎,細節一直出問題,導致了無法彌補的後果,怪自己不夠耐心,要是冷靜思考問題,不應該出這麼多細節錯誤,

第三:心態,在比賽中,不僅考察自己對知識的掌握程度,還是考察了乙個人的全面素質,比如臨場應變能力等,因為乙個題的細節錯誤卡住了接近兩個小時,不但嚴重影響了比賽的時間,還破壞了自己的心情,造成後面的題都沒心思做了,這樣很不好,自己還是不夠沉穩,需要慢慢的改變

反思歸反思,路還是要走的,一次小的挫折,永遠不能阻擋追尋夢想的腳步,一次痛的教訓,也許就是下一次成功的積澱,永遠不會放棄,相信自己的努力!

兩道選擇題

教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車禍,痊癒後,臉上留下幾...

兩道選擇題

記得大學一堂選修課上。教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車...

兩道LIS經典題

題意 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷...