《愛與愁的故事第三彈·shopping》最終章。
愛與愁大神買完東西後,打算坐車離開中山路。現在愛與愁大神在x1,y1處,車站在x2,y2處。現在給出乙個n×n(n<=1000)的地圖,0表示馬路,1表示店鋪(不能從店鋪穿過),愛與愁大神只能垂直或水平著在馬路上行進。愛與愁大神為了節省時間,他要求最短到達目的地距離(a[i][j]距離為1)。你能幫他解決嗎?
輸入格式:
第1行:乙個數 n
第2行~第n+1行:整個地圖描述(0表示馬路,1表示店鋪,注意兩個數之間沒有空格)
第n+2行:四個數 x1,y1,x2,y2
輸出格式:
只有1行:最短到達目的地距離
輸入樣例#1:
3
001101
1001 1 3 3
輸出樣例#1:
4
20%資料:n<=100
100%資料:n<=1000
#include#include#include#include#includeusing namespace std;
int n,outx,outy,inx,s,iny,x,y;
int tox[5]=;
int toy[5]=;
int a[1001][1001],b[1001][1001],d[1000001][4];
char c[1001][1001];
int main()
scanf("%d%d",&inx,&iny);
scanf("%d%d",&outx,&outy);
b[inx][iny]=1;
d[1][1]=inx;
d[1][2]=iny;
d[1][3]=0;
while(tn||y<1||y>n)
continue;
if(!a[x][y]&&!b[x][y])
if(x==outx&&y==outy)
}} for(int i=1;i<=n;i++)
return 0;
}
離開中山路(bfs)
題目背景 愛與愁的故事第三彈 shopping 最終章。題目描述 愛與愁大神買完東西後,打算坐車離開中山路。現在愛與愁大神在x1,y1處,車站在x2,y2處。現在給出乙個n n n 1000 的地圖,0表示馬路,1表示店鋪 不能從店鋪穿過 愛與愁大神只能垂直或水平著在馬路上行進。愛與愁大神為了節省時...
P4819 中山市選 Tarjan SCC
題意 傳送門 p4819 中山市選 殺人遊戲 題解若 x xx 認識 y yy,則從 x xx 向 y yy 連一條有向邊,得到一張有向圖。觀察發現,若存在環,那麼任取環上一點即可,則有 1 n 1 n1 n 的概率是殺手 否則,可獲取下乙個節點的身份,直到環上最後乙個節點或發現殺手。那麼使用 ta...
P4819 中山市選 殺人遊戲
這題想必大家很容易想到圖論建模。每個人都是乙個結點,與他認識的人連一條邊,每過乙個點我們就能這樣擴充套件下去。我們需要使 殺的概率小,簡單貪心 盡量去找認識人多的人詢問,即找到聯通較多邊的那個結點詢問。我們可以求出途中所有的強連通分量,用tarjan演算法縮點,然後找出所有入讀為0的點。但這題有乙個...