【金凌模擬試題】:地鼠的困境
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
12 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移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地...