hdu 2413(最大匹配+二分)
2013-06-19 00:21
260 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2413
思路:由于要求最少的时间,可以考虑二分,然后就是满足在limit时间下,如果地球战舰数目比外星战舰数目多,就连边,然后求最大匹配即可,判断匹配数目是否等于外星球数目,如果相等,说明可以占领,继续二分。
View Code
思路:由于要求最少的时间,可以考虑二分,然后就是满足在limit时间下,如果地球战舰数目比外星战舰数目多,就连边,然后求最大匹配即可,判断匹配数目是否等于外星球数目,如果相等,说明可以占领,继续二分。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; #define MAXN 333 #define inf 1<<20 typedef long long ll; vector<int>map[MAXN]; int mark[MAXN]; int ly[MAXN]; int hp[MAXN],hq[MAXN]; int ap[MAXN],aq[MAXN]; int tt[MAXN][MAXN]; int n,m; int dfs(int u) { for(int i=0;i<map[u].size();i++){ int v=map[u][i]; if(!mark[v]){ mark[v]=true; if(ly[v]==-1||dfs(ly[v])){ ly[v]=u; return 1; } } } return 0; } bool MaxMatch(int limit) { for(int i=1;i<=n;i++)map[i].clear(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ ll t1=1ll+hp[i]+(ll)(limit-tt[i][j])*hq[i]; ll t2=1ll+ap[j]+(ll)limit*aq[j]; if(t1>=t2)map[i].push_back(j); } } int res=0; memset(ly,-1,sizeof(ly)); for(int i=1;i<=n;i++){ memset(mark,false,sizeof(mark)); res+=dfs(i); } if(res==m)return true; return false; } int main() { // freopen("1.txt","r",stdin); while(scanf("%d%d",&n,&m),(n+m)){ for(int i=1;i<=n;i++) scanf("%d%d",&hp[i],&hq[i]); for(int i=1;i<=m;i++) scanf("%d%d",&ap[i],&aq[i]); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&tt[i][j]); int low=0,high=inf,mid,ans=inf; while(low<=high){ mid=(low+high)>>1; if(MaxMatch(mid)){ ans=mid; high=mid-1; }else low=mid+1; } if(ans<inf){ printf("%d\n",ans); }else puts("IMPOSSIBLE"); } return 0; }
View Code
相关文章推荐
- HDU 2413 & POJ 3343 Against Mammoths【最大匹配+二分】
- hdu 2413(最大匹配+二分)
- hdu 5093 Battle ships 最大二分匹配
- hdu 4169 二分匹配最大独立集 ***
- hdu 2444 二分黑白染色法+最大匹配数
- HDU 2063 BNUOJ 6207 过山车 (最大流or二分匹配)
- hdu 2063 过山车(二分最大匹配)
- HDU 1179(二分最大匹配)
- HDU-1498(二分匹配_求最大覆盖定点数)
- hdu 1150 最小覆盖点==最大二分匹配 Machine Schedule
- hdu 2063 最大二分匹配,匈牙利算法
- hdu 4619 (二分匹配,最大匹配)
- HDU 2768 Cat vs. Dog 【二分匹配之最大独立集】
- HDU 1083 Courses (二分最大匹配)
- HDU 5093 Battle ships(最大流 or 二分匹配)
- hdu 5093 Battle ships(最大二分匹配)
- hdu 2444 The Accomodation of Students【二分图染色+最大二分匹配数】
- A new Graph Game HDU - 3435 (二分匹配思想)(最小花费最大流)
- HDU 2458 二分匹配求最大团
- hdu1179——二分最大匹配数