二分匹配ZOJ3646
2016-05-20 14:09
183 查看
//题意:类比线代里:把矩阵中的U看作【1】,是否满足一个满秩矩阵
//利用二分匹配就是
//每一行都有相对应的列;
//利用二分匹配就是
//每一行都有相对应的列;
#include<iostream> #include<string.h> #include<set> #include<queue> #include<sstream> using namespace std; #define N 220 char s ; int ma ; bool vis ; int cx ; int cy ; int n; int findpath(int u) { for(int i=0;i<n;i++) { if(!vis[i]&&ma[u][i]) { vis[i]=1; if(cy[i]==-1||findpath(cy[i])) { cy[i]=u; cx[u]=i; return 1; } } } return 0; } int main() { while(~scanf("%d",&n)) { memset(ma,0,sizeof(ma)); for(int i=0;i<n;i++) { scanf("%s",s[i]); for(int j=0;j<n;j++) { if(s[i][j]=='U') ma[i][j]=1; } } int ans=0; memset(cx,-1,sizeof(cx)); memset(cy,-1,sizeof(cy)); for(int i=0;i<n;i++) { if(cx[i]==-1) { memset(vis,0,sizeof(vis)); ans+=findpath(i); } } if(ans==n) { printf("YES\n"); } else printf("NO\n"); } return 0; }
相关文章推荐
- 【React】 React的优点+实现分页组件
- CSS——定位模式
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
- linux 虚拟网卡
- java面试需要准备什么呢?c++可以看看
- oracle中to_date() 与 to_char() 日期和字符串转换
- Mac 基础教程:如何删除右键菜单重复项目
- gulp构建工具整理
- JBOSS启动错误:Not pointing to a directory
- 移动端app测试
- 语音VLAN
- 什么是半像素
- Nginx防盗链详细设置
- 人工智能模拟进化
- 码农只能干到30岁的新理由
- Leetcode 189 Rotate Array stl
- kali 2.0源更新
- JavaSE_String和char[]之间的相互转换
- ansible简单应用
- 几个withdraw程序的对比