BZOJ1295 SCOI2009 最長距離

2022-05-02 15:18:09 字數 2365 閱讀 3362

time limit: 10 sec  memory limit: 162 mb

submit: 1719  solved: 935

[submit][status][discuss]

windy

有一塊矩形土地,被分為 n*m 塊 1*1 的小格仔。 有的格仔含有障礙物。

如果從格仔a可以走到格仔b,那麼兩個格仔的距離就為兩個格仔中心的歐幾里德距離。 如果從格仔a不可以走到格仔b,就沒有距離。

如果格仔x和格仔y有公共邊,並且x和y均不含有障礙物,就可以從x走到y。 如果windy可以移走t塊障礙物,求所有格仔間的最大距離。

保證移走t塊障礙物以後,至少有乙個格仔不含有障礙物。

輸入檔案maxlength.in第一行包含三個整數,n m t。 接下來有n行,每行乙個長度為m的字串,'0'表示空格子,'1'表示該格仔含有障礙物。

輸出檔案maxlength.out包含乙個浮點數,保留6位小數。

【輸入樣例一】

3 3 0

001001

110【輸入樣例二】

4 3 0

001001

011000

【輸入樣例三】

3 3 1

001001

001【輸出樣例一】

1.414214

【輸出樣例二】

3.605551

【輸出樣例三】

2.828427

20%的資料,滿足 1 <= n,m <= 30 ; 0 <= t <= 0 。 40%的資料,滿足 1 <= n,m <= 30 ; 0 <= t <= 2 。 100%的資料,滿足 1 <= n,m <= 30 ; 0 <= t <= 30 。

曾經覺得很神的做法,現在已經淪為水題。

可曾經,我還有考noip2017的機會

現在沒了

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9

#define min(a, b) ((a) < (b) ? (a) : (b))

10#define max(a, b) ((a) > (b) ? (a) : (b))

11#define abs(a) ((a) < 0 ? (-1 * (a)) : (a))

12 inline void swap(int &a, int &b)

1316 inline void read(int &x)

1723

24const

int inf = 0x3f3f3f3f;25

const

int maxn = 30 + 10;26

const

int dx[4] = ;

27const

int dy[4] = ;

2829

intn,m,t,ans[maxn][maxn][maxn][maxn];

30bool

g[maxn][maxn];

3132

struct

node

3336

node(){}

37 }q[maxn * maxn * maxn *maxn];

3839

intd[maxn][maxn], b[maxn][maxn], he, ta;

4041

void spfa(int sx, int

sy)42

62}

63} 64}

6566

char

s[maxn];

6768

intmain()

6977

for(register int i = 1;i <= n;++ i) for(register int j = 1;j <= m;++j)

7882

double p = 0;83

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

84for(register int j = 1;j <= m;++j)

85for(register int a = 1;a <= n;++a)

86for(register int b = 1;b <= m;++b)

87if(ans[i][j][a][b] <=t)

88 p = max(p, sqrt(abs(i - a) * abs(i - a) + abs(j - b) * abs(j -b)));

89 printf("

%.6lf

", p);

90return0;

91 }

bzoj1295

BZOJ1295 SCOI2009 最長距離

給出乙個n m的矩陣,有障礙物,a,b 和 c,d 存在距離當且僅當兩個點能互相到達,且距離為歐幾里德距離 可以移走t個障礙物,求出距離最大的兩個點的距離 n,m這麼這麼小 直接o n2m2 跑最短路,水題 include include include include include using ...

bzoj1295 SCOI2009 最長距離

scoi2009 最長距離 time limit 10 sec memory limit 162 mbwindy有一塊矩形土地,被分為 nm 塊 11 的小格仔。有的格仔含有障礙物。如果從格仔a可以走到格仔b,那麼兩個格仔的距離就為兩個格仔中心的歐幾里德距離。如果從格仔a不可以走到格仔b,就沒有距離...

bzoj1295 SCOI2009 最長距離

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