2023年東北農業大學春季校賽 wyh的吃雞

2022-09-03 19:18:09 字數 2069 閱讀 5914

最近吃雞遊戲非常火,你們wyh學長也在玩這款遊戲,這款遊戲有乙個非常重要的過程,就是要跑到安全區內,否則就會中毒持續消耗血量,我們這個問題簡化如下

假設地圖為n*n的乙個圖,圖中有且僅有一塊x的聯通快代表安全區域,有乙個起點s代表縮圈的時候的起點,圖中c代表的是車(保證車的數量小於等於100),標記為.的代表空地,可以任意通過,o代表障礙物不能通過。每次沒有車的時候2s可以走乙個格(只能走自己的上下左右4個方向),有車的話時間為1s走乙個格

現在告訴你最多能堅持的時間為t秒,問你在t秒內(含t秒)能否從s點到達安全區域,能的話輸出yes,並且輸出最短時間,不能的話輸出no

輸入第一行乙個整數t(1<=t<=10)

接下來有t組測試資料,每組測試資料輸入2個數n和k(1<=n<=100,1<=k<=10^9)

接下來n行,每行n個字元,代表對應的n*n的地圖,每個字元都是上面的一種,並且保證只有乙個起點,只有一塊安全區域。

對於每組測試資料,先輸出能否到達,能的話輸出yes,然後換行輸出最短時間,如果不能的話直接輸出no
示例1

3

2 3.x

s.2 3

.xsc

2 4.x

s.

no

yes3

yes4

思路:啟發式搜尋,參照spfa最小堆優化。

**:

1 #include2

using

namespace

std;

3#define read(x) scanf("%lld",&x)

4#define out(x) printf("%lld",&x)

5#define cfread(x) scanf("%i64d",&x)

6#define cfout(x) printf("%i64d",&x)

7#define mian main

8#define min(x,y) (x9

#define max(x,y) (x10

#define f(i,p,q,t) for(i=p;i11

#define maxn 110000

12#define inf 0x3f3f3f3f

13#define mem(x,t) memset(x,t,sizeof(x));

14#define t true

15#define f false

16#define def -1*inf

17 typedef long

long

ll;18 typedef long

long

ll;19 typedef double

dd;20

char s[300][300

];21

int v[300][300][2

];22

int dx=;

23int dy=;

24struct

data

31};

32 priority_queueteam;

33void

deal()

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

78data pd;

79 pd.x = nx,pd.y =ny;

80 pd.qc =yc;

81 pd.bs = pt.bs + 2 -pt.qc;

82if(v[pd.x][pd.y][pd.qc]<=pd.bs&&v[pd.x][pd.y][pd.qc]!=-1)85

//cout<<"\t"<86 v[pd.x][pd.y][pd.qc] =pd.bs;

87team.push(pd);88}

89}90if(ans<=m&&ans>-1

)91 printf("

yes\n%d\n

",ans);

92else

93 printf("

no\n");

94}95int

main()

2023年東北農業大學春季校賽D wyh的迷宮

給你乙個n m的迷宮,這個迷宮中有以下幾個標識 s代表起點 t代表終點 x代表障礙物 代表空地 現在你們涵哥想知道能不能從起點走到終點不碰到障礙物 只能上下左右進行移動,並且不能移動到已經移動過的點 輸入第一行乙個整數t 1 t 10 接下來有t組測試資料,對於每一組測試資料,第一行輸入2個數n和m...

2023年東北農業大學春季校賽 B wyh的矩陣

給你乙個n n矩陣,按照順序填入1到n n的數,例如n 5,該矩陣如下 16 1116212 712172238 1318234 9141924510 152025 1 現在讓你連線相鄰兩條邊的中點,然後只保留他們圍成封閉圖形區域的數字,那麼這個矩陣變為 117 121738 1318239 141...

2023年東北農業大學春季校賽 I wyh的物品

wyh學長現在手裡有n個物品,這n個物品的重量和價值都告訴你,然後現在讓你從中選取k個,問你在所有可能選取的方案中,最大的單位價值為多少 單位價值為選取的k個物品的總價值和總重量的比值 輸入第一行乙個整數t 1 t 10 接下來有t組測試資料,對於每組測試資料,第一行輸入兩個數n和k 1 k n 1...