洛谷 U140282 潛於陰影

2022-03-20 00:54:15 字數 1619 閱讀 1444

洛谷傳送門

「退回陰影之中」

大主教雖重新集結了部隊,但仍然抵擋不住蟲群的入侵

他決定帶領族人們坐上亞頓之矛,逃離艾爾,前往夏古拉斯——黑暗聖堂武士所在的星球。

已知艾爾(起點)的座標為(1,1),夏古拉斯(終點)的座標為(n,m)。而在宇宙中漂浮著大塊的隕石,記為「#」,無法通過。其餘可通行的位置則記為「.」。亞頓之矛每次行進,僅可向四周四個方向移動一格,這記為一次操作。亞頓之矛擁有一次傳送的機會,當在(x,y)處傳送時,亞頓之矛會傳送至(x+d,y+r)處,使用傳送也記為一次操作。

星靈的存亡在此一舉,於是大主教找到了你——jdoi滴神。他想知道最少幾步操作能到達夏古拉斯。

第一行個整數,n,m,d,r,意義在描述已經說明。

接下來 n 行,每行長度是 m,僅有 . 或者 # 的字串。

乙個整數,表示最少運算元

若不能到達,則輸出-1

2020.11.14模擬賽t2 95分場。

作法假了...掛了乙個點。命好。

我的思路是:裸的走地圖bfs是四種方向搜。這個就變成五種方向就行。

但是假了。為什麼呢?因為喝藥有兩種作用,如果不喝藥能到,喝藥使得步數更少。如果不喝藥到不了,喝藥使穿牆。所以要分兩個部分分別搜尋轉移。

80pts**:

#include#includeusing namespace std;

const int maxn=1010;

int n,m,d,r;

char mp[maxn][maxn];

bool vis[maxn][maxn];

int dis[maxn][maxn];

int dx=;

int dy=;

struct node

;queueq;

int main()

node a;

a.x=1,a.y=1,a.d=0,a.f=0;

q.push(a);

vis[1][1]=1;

while(!q.empty())

node v;

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

}puts("-1");

return 0;

}

滿分**:

#include #define x x + movx[i]

#define y y + movy[i]

using namespace std;

int movx[4] = ;

int movy[4] = ;

int n, m;

int a[2001][2001], b[2001][2001];

bool used[2001][2001];

struct hehe;

void bfs1()}}

}}void bfs2()}}

}}int main()

}bfs1();

bfs2();

int ans = a[n][m];

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

}else cout << ans;

return 0;

}

洛谷 U6931 燈光

明天就是校園活動了,小明作為場地的負責人,將一切都布置好了。但是在活動的前幾天,校園裡的燈卻都壞掉了,無奈之下,只好再去買一批燈。但是很遺憾的是,廠家看馬上要過年了,就沒有在進貨了,現在只剩下n個發光值不同的燈,作為負責人,你需要,想辦法配出合適的燈。廠家有n盞剩下的燈,小明需要m盞燈,因為活動舉辦...

洛谷 U141384 電路

洛谷傳送門 seawayseawa y是熱愛學習的好孩子。有一天,seawayseawa y正在向他的物理老師lsplsp討教物理。ll老師向他介紹了一種神奇的電路,邏輯電路 ll老師說 邏輯電路是一種離散訊號的傳遞和處理 以二進位制為原理 實現數碼訊號邏輯運算和操作的電路。分組合邏輯電路和時序邏輯...

改數 洛谷 U5398

又是一年noip,科學館的五樓 我們看下這道題,我們來模擬一下 2,3,5,7,12 這其實就是乙個a i 1 a i i的序列 那熟悉的凌波教鞭,熟悉的憨厚的聲音,那熟悉的.哦,還有那熟悉的來自未來某位神牛的發言 老師,好像有個數寫錯了 給出乙個長度為n的整數序列a,你能改動最少的數,使之滿足a ...