UVAlive 5027 card game KM
来源:互联网 发布:sql启动不了怎么办 编辑:程序博客网 时间:2024/06/06 04:00
以为思路错、模板错WA了好久
原来是看错题,吸取教训了!
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cstdlib>using namespace std;#define N 300#define INF 20000000int cal(char *a,char *b){int lena=strlen(a);int lenb=strlen(b);int i=lena-1,j=0;for(;i>=0&&j<lenb;--i,++j)if(a[i]!=b[j])break;return j;}int n,map[N][N],lx[N],ly[N],visx[N],visy[N],matchy[N],ans,slack;char a[250][1200];bool dfs(int u){visx[u]=1;for(int i=1;i<=n;++i)if(!visy[i]){int temp=lx[u]+ly[i]-map[u][i];if(temp==0){visy[i]=1;if(matchy[i]==0||dfs(matchy[i])){matchy[i]=u;return true;}}else if(temp<slack)slack=temp;}return false;}void KM(){memset(ly,0,sizeof(ly));memset(matchy,0,sizeof(matchy));for(int i=1;i<=n;++i){lx[i]=-INF;for(int j=1;j<=n;++j)if(map[i][j]>lx[i])lx[i]=map[i][j];}for(int i=1;i<=n;++i)while(1){memset(visx,0,sizeof(visx));memset(visy,0,sizeof(visy));slack=INF;if(dfs(i))break;for(int j=1;j<=n;++j)if(visx[j])lx[j]-=slack;for(int j=1;j<=n;++j)if(visy[j])ly[j]+=slack;}ans=0;for(int i=1;i<=n;++i){ans+=map[matchy[i]][i];}}int main (){while(scanf("%d",&n)!=EOF){for(int i=1;i<=n;++i)scanf("%s",a[i]);memset(map,0,sizeof(map));for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)map[i][j]=(i==j?0:cal(a[i],a[j]));KM();printf("%d\n",ans);}return 0;}
- UVAlive 5027 card game KM
- hdu3722 Card Game (KM)
- hdu 3722 Card Game (km)
- Card Game(网络流,KM)
- 【TOJ 3751.】Card Game【KM】
- hdu 3722 Card Game【KM】
- hdu 3722 Card Game (KM )
- hdu 3722 Card Game(KM算法)
- HDU 3722 Card Game KM水题
- HDU 3722 Card Game(KM算法)
- HDU3722 Card Game KM算法的二分图带权匹配
- HDU3722 Card Game 二分图之最优匹配 KM算法
- HDU 3722 Card Game(KM最大匹配)
- hdu 3722 2010 Asia Tianjin Regional Contest Card Game KM
- HDU 3722 Card Game(KM最大匹配)
- hdu 3722Card Game(KM匹配求环)
- HDU3722 Card Game(KM最小费用圈覆盖)
- UVALive 4260 Fortune Card Game (Regionals 2008 Asia Taipei +DP)
- Eclipse中导入工程提示:invalid project description
- ASP.NET迁移到IIS7.0
- Base64编码详解
- 外国男子在北京抢车后连撞4车和1名行人-砍伤-外国男子-菜刀
- Js中keyCode值对照表
- UVAlive 5027 card game KM
- struts的工作机制
- C#创建COM组件
- linux 高级编程
- cookie和session的区别
- Android之高仿QQ聊天
- HDU 1148 Rock-Paper-Scissors Tournament
- 文化部副部长:诺贝尔文学奖颁给莫言非常公道-文学奖-莫言-诺贝尔奖
- 全国省市县无刷新多级关联菜单