洛谷傳送門
「退回陰影之中」
大主教雖重新集結了部隊,但仍然抵擋不住蟲群的入侵
他決定帶領族人們坐上亞頓之矛,逃離艾爾,前往夏古拉斯——黑暗聖堂武士所在的星球。
已知艾爾(起點)的座標為(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 ...