• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Eric.cpp
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2012年5月25日

KM
摘要: View Code /*[HRBEU1220]Adventure题意:有N*M的矩阵,以及N+M个开关,前N个开关每按一次,对应的行上的数字都减1(如果是0不减),后M个开关每按一次,对应的列上的数字都减1(如果是0不减)。问将整个矩阵置0最少需要按几次。分析:首先看KM算法的定义:KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yj的顶标为B[j],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终成立。KM算法的正确性基于以下定理 阅读全文
posted @ 2012-05-25 21:02 Eric.cpp 阅读(107) 评论(0) 推荐(0)
 
这个大牛做了好多题
摘要: http://blog.csdn.net/hqd_acm 阅读全文
posted @ 2012-05-25 20:36 Eric.cpp 阅读(77) 评论(0) 推荐(0)
 
拓扑排序
摘要: 邻接矩阵:View Code #include <iostream>#include <stdio.h>using namespace std;#define E 1001void Topsort(int count[],int n,int edge[][E]){ int i,top=-1; for(i=0;i<n;i++) if(count[i]==0) { count[i]=top; top=i; } for(i=0;i<n;i++) if(top==-1) ... 阅读全文
posted @ 2012-05-25 15:40 Eric.cpp 阅读(363) 评论(0) 推荐(0)
 
【专题】图的连通性问题---有向图的强连通性的求解及应用
摘要: 1.Tarjan算法:View Code #include <stdio.h>#include <iostream>#include <string.h>#define E 10000#define V 1000using namespace std;void tarjan(int u);void solve();void suodian();void addedge(int u,int v,int c);int top,cnt,index,n,ecnt;bool instack[V];int stack[V],id[V],dfn[V],low[V],num 阅读全文
posted @ 2012-05-25 12:46 Eric.cpp 阅读(1204) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3