POJ PKU 3323 二分 匹配
(2010-09-23 13:35:21)
标签:
pojpku3323二分匹配it |
分类: 图论 |
题目描述:
人类有n个星球,外星人有m个星球。
每个星球都有 初始的战舰数目 和 单位时间生产战舰的数目 两个属性。
n行m列的矩阵G, Gij表示人类i星球到外星人j星球所耗费的时间。
人类星球i攻击外星人星球j的战舰数目为:i初始数目+出发时间 * 生产率
外星人星球j的战舰数目:j初始数目 + (出发时间 + i到j耗费时间) * 它的生产率。
人类数目 >= 敌人数目,就能打败外星人星球j。
并且一个人类星球只能攻打一个外星人星球。
问,把所有外星人星球都打败的时间是多少。
解题报告:
二分花费时间(i到j能打败的花费时间已经预处理出来),满足花费时间的星球连接边。
匹配,看看匹配数目是否等于外星人星球数目。
满足的答案中最小值就是答案。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
int num[2], match[250], cnt, x[2][250][2], g2[250][250],
d[250][250], len[250 * 250];
bool vst[250]; vector<int>
v[250];
bool find(int pos)
{
}
bool solve()
{
}
int main()
{