本文共 920 字,大约阅读时间需要 3 分钟。
KM(带权二分图匹配)的裸题,就是构图和细节恶心。。
感觉今天一直在搞二分图匹配。。
#include #include #include #include #include #include #include using namespace std;map mp;char ss[10];void Rose_max(){ int len=strlen(ss); for(int i=0;i =x3&&x3>=x2))&&((y1<=y3&&y3<=y2)||(y1>=y3&&y3>=y2))) if((y3-y1)*(x3-x2)==(y3-y2)*(x3-x1)) {v[i][j]=false;break;} } } } memset(love,-63,sizeof(love)); for(int i=1;i<=n;i++) for(int j=n+1;j<=2*n;j++) if(v[i][j]==true)love[i][j-n]=1; while(1) { memset(ss,0,sizeof(ss));scanf("%s",ss);Rose_max(); if(ss[0]=='e'&&ss[1]=='n'&&ss[2]=='d'&&strlen(ss)==3)break; int p1=mp[ss]; memset(ss,0,sizeof(ss));scanf("%s",ss);Rose_max(); int p2=mp[ss]; if(p2<=n)swap(p1,p2); scanf("%d",&x); if(v[p1][p2]==true)love[p1][p2-n]=x; } //------init------------ KM(); return 0;}
转载于:https://www.cnblogs.com/AKCqhzdy/p/8630125.html