問題描述及分析:
該題較簡單,題意是
給出m個動物的地點,
n個洞,還有速度和時間
(其實就是給了距離),問
m個動物最多能有幾個在規定的時間裡一規定的速度躲到洞裡逃生。典型的二分圖匹配的問題,動物的位置為左邊的結點,洞為右邊的結點,如果他們的距離小於等於時間
×速度,我們就認為他們是連線的,否則認為不連線,我們只要計算最大二分圖匹配數,就是可以逃生的動物數,用總數減去匹配數就是不能逃生的,即為所求。
用匈牙利演算法如下:
#include#include#define max 101
using namespace std;
int map[max][max]; // 記地圖錄
int link[max]; // link[y] 記錄 與 y 節點相連的 x
int visit[max];// 將對 y 節點進行擴充過的記錄在 visit[y] 為1
int gn,gm; // gn 表示 匹配的 x gm 表示匹配的 y 的個數
typedef struct nodenode;
node gopher[max],hole[max];
bool can(int s)
} }return false;
}int maxmatch()
return num;
}double dis( node x ,node y)
int main(void)
for(i=1;i<=m;i++)
// 計算距離
for(i=1; i<=n;i++)
}} gn = n; gm = m;
cout<
python雙向最大匹配演算法 雙向最大匹配分詞演算法
usr bin python encoding gbk import sys dictmaxlength 5 dctdict encoding gbk 初始化字典 初始化最大詞長 def initdct dct global dctdict global dictmaxlength dctobj o...
正向最大匹配
按照網上資料,中文分詞演算法可分為三大類 基於字典 詞庫匹配的分詞方法 基於詞頻度統計的分詞方法和基於知識理解的分詞方法。基於詞庫的方法,有幾個問題要解決,一是詞庫和資料結構,二是字串在詞庫的匹配方式,三是多種滿足匹配的選擇。正向最大匹配是基於詞庫的分詞方法,基本思想是按照文字的正方向,與詞庫中的詞...
最大匹配演算法
最大匹配法是最簡單的分詞方法,他完全使用詞典進行分詞,如果詞典好,則分詞的效果好 正向,即從左往右進行匹配 maximum match method 最大匹配法 class mm def init self self.window size 4 def cut self,text result in...