問題 C 傳送門

2021-09-29 21:46:29 字數 1944 閱讀 3332

第二天叫醒我的不是鬧鐘,是夢想!

題目描述

用乙個nn的矩陣表示乙個島嶼,島嶼中有陸地和水域,陸地用0表示,水域用1表示,你只能在陸地上行走,在陸地上行走不需要花費任何費用,給定起點的座標(sx,sy)與終點座標(ex,ey),保證這兩個點必定是陸地。

你可以在任意兩塊陸地上建立乙個傳送門且最多只能建乙個傳送門,傳送門可以使兩個點互達,費用是兩點間橫座標、縱座標的差的平方和,即(sx-ex)2+(sy-ey)2。

求從起點起到終點的最小花費,若不需要建傳送門可直接到達終點則花費為0。

輸入

有多組測試資料。

第一行輸入乙個正整數t(2≤t≤10),表示測試資料的組數。

對於第組測試資料輸入如下:

第一行輸入乙個正整數n(1≤n≤100)。

第二行輸入起點座標sx,sy。

第三行輸入終點座標ex,ey。

接下來的n行輸入乙個nn的01矩陣,0與1之間無空格,詳見樣例。

輸出

對於每組測試資料輸出一行,即乙個整數表示該組資料的最小花費。

樣例輸入 copy35

1 15 5

00001

11111

00111

00110

00110

31 3

3 1010

101010

21 1

2 200

10樣例輸出 copy108

0提示

對於100%的資料,2≤t≤10,1≤n≤100。

//比賽中一直段錯誤,一直沒改出來。改寫bfs了

//如果能走通就輸出0,如果不行就把周圍0的點記錄一下,然後從終點再跑一下,再記錄。然後公式求即可

#include.h>

using namespace std;

const int n

=110

;int sx,sy,ex,ey,n;

int dx[4]

=;int dy[4]

=;int vis[n]

[n],f,cnt;

char s[n]

[n];

struct node

a[1000

],b[

10000];

void

bfs(int sx,int sy,int ex,int ey,node a[

],int &cnt ,int f));

a[++cnt]

=node

;while

(q.size()

)for

(int i=

0;i<

4;i++))

; a[

++cnt]

=node;}

}}int main()

f=0;

bfs(ex,ey,sx,sy,b,cnt2,f)

; int minv=

0x3f3f3f3f

;// for(int )

for(int i=

1;i<=cnt1;i++

)for

(int j=

1;j<=cnt2;j++

) minv=

min(minv,

(a[i]

.x-b[j]

.x)*

(a[i]

.x-b[j]

.x)+

(a[i]

.y-b[j]

.y)*

(a[i]

.y-b[j]

.y))

; cout<}}

解鎖 傳送門

linenoise c命令列處理工具 catch2 c 測試框架 quick start linenoise ng linenoise next generation c 命令列處理工具 yarn 快速 可靠 安全的node包依賴管理工具 pandoc pandoc安裝 使用 快速上手 autope...

JZOJ A組 傳送門

8102年,normalgod在glados的幫助下,研製出了傳送槍。但glados想把傳送槍據為己有,於是把normalgod扔進了一間實驗室。這間實驗室是一棵有n個節點的樹。現在normalgod在一號節點,出口也在一號節點,但為了開啟它,必須經過每乙個節點按下每個節點的開關,出口才能開啟。gl...

資料集傳送門

描述 flickr30k 多標籤定義影象 esp game 多標籤定義影象 iaprtc 12 多標籤定義影象 nus wide 視覺關係檢測 vrd 視覺關係檢測 svg 影象屬性檢測 visual genome dataset 關於rgbd 影象場景理解的資料庫 nyu depth v2 dat...