地鼠的困境

2021-06-06 17:39:30 字數 1525 閱讀 9434

【金凌模擬試題】:地鼠的困境

time limit:1000ms  memory limit:65536k

total submit:40 accepted:16

description

地鼠家族面臨著乙個新的威脅——獵食者。 

地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的(x, y)座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地鼠數量最少。 

input

本題有多組資料。第1行為測試資料組數t(t<=50)。 

對於每組資料,第一行4個整數n, m, s和v(n, m <= 100)。以後n行為地鼠的座標,以後m行為鼠洞的座標。距離的單位是m,時間的單位是s,速度的單位是m/s。 

output

對於每組資料輸出一行,為易受攻擊的地鼠的數量。

sample input

1

2 2 5 10

1.0 1.0

2.0 2.0

100.0 100.0

20.0 20.0

sample output

1
二分圖的最大匹配
#include using namespace std;

double dist(double x1,double y1,double x2,double y2)

const double eps=1e-12;//notes:eps

#define maxn 105

#define maxm 105

struct node

gopher[maxn],hole[maxm];

int n, m; //n為集合x個數,m為集合y個數

bool graph[maxn][maxm];

int match[maxm];//表示元素j的與之匹配的是哪個元素i,一開始要全部初始化為n,表示和哪個都不匹配

int chk[maxm]; //表示元素i在dfs中是否被訪問過

bool dfs(int p) //dfs,從元素p出發尋找增廣路

}} return false;

}int hungary() //匈牙利演算法,返回最大匹配數

for (i = 1; i <= n; i++) //迴圈n次,每次確定乙個元素被匹配

return res;

}int main()

for (i = 1; i <= m; i++)

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

printf("%d\n",n - hungary());

}return 0;

}

地鼠的困境 SSL 1333(最大匹配)

description 地鼠家族面臨著乙個新的威脅 獵食者。地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使...

1333 地鼠的困境 最大匹配

description 地鼠家族面臨著乙個新的威脅 獵食者。地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使...

SSL1333 地鼠的困境

地鼠家族面臨著乙個新的威脅 獵食者。地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地...