P4162 SCOI2009 最長距離

2022-03-17 23:21:10 字數 1029 閱讀 1410

題目鏈結

這道題資料範圍比較小,所以方法還是比較暴力的。

思路:

先按每個格仔的狀態,讓所有格仔與他周圍的格仔連一條權值為它連向那個格仔的值(0或1)。然後我們n方列舉所有格仔跑最短路,最短路即為從起點到終點的最小障礙數。然後我們列舉所有最短路,先看他移除障礙後是否只用了小於等於k次機會,然後求出兩點間的距離,取max即可。

**如下:

#includeusing

namespace

std;

const

int maxn=1e6+7

;struct

nodeedge[maxn*3

];int

head[maxn],cnt;

int num[550][550

];int val[550][550

];char s[550][550

];int

n,m,t;

void add(int x,int y,int

v)priority_queue

int ,int> >q;

double dist(int x,int y,int xx,int

yy)double

ans;

bool

vis[maxn];

intdis[maxn];

void dijkstra(int

x) }

}}int

main()

}/*for(int i=1;i<=n;i++)

printf("\n");

}*/for(int i=1;i<=n;i++)

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

}printf(

"%.6lf\n

",ans);

return0;

}

view code

SCOI2009 最長距離

windy有一塊矩形土地,被分為 nm 塊 11 的小格仔。有的格仔含有障礙物。如果從格仔a可以走到格仔b,那麼兩個格仔的距離就為兩個格仔中心的歐幾里德距離。如果從格仔a不可以走到格仔b,就沒有距離。如果格仔x和格仔y有公共邊,並且x和y均不含有障礙物,就可以從x走到y。如果windy可以移走t塊障...

1295 SCOI2009 最長距離

題目鏈結 題目大意 給出一張地圖,上面有些點有障礙物,現在有t個機會能夠移除障礙物,問地圖上點對間的最長的歐幾里得距離 題解 由於答案由一對點確定,很容易想到列舉這一對點 記列舉的第乙個點為st,第二個點為ed,以st跑spfa,d i 表示從st到i經過的最少的障礙數,對於每個ed,若d ed t...

題解 P4159 SCOI2009 迷路

large 題目和普通的 01 路徑矩陣加速有一點區別,做法很巧。large 給定乙個鄰接矩陣,即每個點之間的邊權,若為 0 則無邊,因為是 a a 的矩陣,所以隱藏含義是每條邊權 1 9 large 因為邊權不只是 1 了,所以不能直接就將每個點連線邊做矩乘,但是資料範圍太大又不能不用矩乘。注意到...