2019第十屆藍橋杯 I 胖子迷宮

2021-09-24 03:59:40 字數 2232 閱讀 8542

題目意思:給你乙個n*m的迷宮,+能走,*障礙物,乙個胖子一開始在3,3,體積為5*5

不過胖子走迷宮的目的是為了**,給你乙個時間k,當到達時間k時,胖子餓瘦了變成3*3,當到達時間2*k時,更瘦了變成1*1

題目要求到達(n-2,m-2)這個點所需的最短時間。

n,m<=300,

解決思路,參考hdu1026,bfs+優先佇列(這裡如果  不直接原地跳躍到k時刻,而是選擇time+1呆在原地,那麼不用優先佇列也可以,優先佇列的作用是,每一層擴充套件開來的結點是會改變時刻的,比如說hdu1026是要在乙個節點打怪打幾個小時,而普通的佇列bfs,以其擴充套件順序為時刻,所以按順序搜尋就行了)

注意幾點:

1.四個方向的寫法:int foot[4][2]=;

2.根據當前時間判斷胖子大小,然後決定胖子在原地待多少時間(k或者2k)

3.學會了freopen重定向的寫法

4.迷宮問題還是在周圍附一圈邊界寫起來方便

5.pre陣列主要是為了記錄路徑方便檢視(來自hdu1026),print1函式也是為了列印路徑,可忽略。

6.可以嘗試que.push();(與定義int ti,x,y,da;順序相對應)的寫法

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

char a[310][310];

bool p[310][310];

int n,m,k,dada,num;

int foot[4][2]=;

struct node

};priority_queueq;

struct route

pre[310][310][6];

bool pan(int x,int y,int da)

int bfs()

else

q.push(nex);

pre[nex.x][nex.y][nex.da].x=w.x;

pre[nex.x][nex.y][nex.da].y=w.y;

pre[nex.x][nex.y][nex.da].da=w.da;

pre[nex.x][nex.y][nex.da].ti=w.ti;}}

q.pop();

if (q.empty()) break;

w=q.top();

}dada=w.da;

if (!q.empty()) return w.ti;

else return 0;

}void print1(int n,int m,int dad,int tt)*/}

int main()

getchar();

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

//return 0;

printf("%d %d\n",n,m);

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

printf("\n");

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

for (int j=1;j<=m;j++)

while (!q.empty()) q.pop();

memset(p,0,sizeof(p));

memset(pre,0,sizeof(pre));

int ans=bfs();

printf("%d\n",ans);

num=0;

/*for (int i=1;i<=n;i++)

printf("\n");

}*/print1(n-2,m-2,dada,ans);

fclose(stdin);//關閉檔案

fclose(stdout);//關閉檔案

return 0;

}

結果:

第十屆藍橋杯 JavaA 迷宮

法一 思路 bfs,path記錄路徑。1.程式設計 2.觀察 description todo author frontier time 2019年4月9日 上午11 19 05 class node public class d迷宮 增量陣列,方向向量,直接按字典序排列 static int y ...

2019第十屆藍橋杯C C

這是我第一次參加藍橋杯比賽,比完後,有點低於預期,自己的發揮低於預期,賽事水準也低於預期。教室裡面很多同學的電腦出現問題,舉辦學校也沒有完善的應急方案,有一部分同學11點鐘才可以做題。提取碼 560f1.給20個球員擔任五個不同位置的得分,要你選五個球員組成一支球隊的最大得分。這道題要是全排列做的話...

第十屆藍橋杯CB題目I 分析

思路分析 感謝寫文博主 思路 相信大多數人和我一樣在比賽的時候把這題想的太簡單了 這題和去年的最後一題很類似,就是分類討論,去年放在了最後一題,今年在倒數第二題,說明難度不算太難,分析出來了就會覺得emmm好坑 那麼下面開始分析,我是按照符號的個數和負數的個數來分類討論的 負號個數為0,那麼沒有辦法...