EOJ 2096
来源:互联网 发布:闲鱼网淘宝 编辑:程序博客网 时间:2024/05/01 14:49
题目描述:
大意就是一个NXN的方格,格子里有一些点,然后一次可以消灭其中一行或者一列,然后问最多要几次才能将其全部消灭;
求解思路:
可以将方格中的点看作(x,y)的集合,将x和y分作两行,每个点对应一条x和y之间的连线,是一个二分图,可以转化为求二分图最大匹配的问题。
用匈牙利算法来求解,最主要的思路还是深搜,加上一个匹配的记忆。
code:
//Asteroids#include<iostream>#define N 502using namespace std; int x[N];int y[N];int a[N][N];bool vis[N];int n,k; bool dfs(int v){for(int i=1;i<=n;i++){if(a[v][i]&&!vis[i]){vis[i]=true;if(y[i]==-1||dfs(y[i])){y[i]=v;return true;}}}return false;} int main(){//freopen("in.txt","r",stdin);cin>>n>>k;int c,r;for(int i=0;i<k;i++){scanf("%d%d",&c,&r);a[c][r]=1;} int count=0;memset(y,-1,sizeof(y));for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(dfs(i))count++;}cout<<count<<endl;return 0;}
0 0
- EOJ 2096
- EOJ
- EOJ
- EOJ
- EOJ gauss
- EOJ 1255
- EOJ 1851
- EOJ 2141
- EOJ 2562
- EOJ 1818
- EOJ----足球锦标赛
- eoj 3451
- eoj 3449
- eoj 3442
- EOJ 2112 WYI & EOJ 2113 WYII
- EOJ 1839 表达式(数据结构) & EOJ 1003
- EOJ 5 Bad Cowtractors
- 【EOJ】2895循环小数
- android内核启动分析之head.S
- 数字签名是什么?
- JSP提供8种内置对象
- 获得电脑的信息 控制台程序
- android测试-流量篇
- EOJ 2096
- 程序员找工作经验
- android混淆配置说明
- Linux curl命令详解
- 域名的前前后后
- 正投影
- iOS 从UITableViewController中分离数据源
- instrumentation中ActivityTestCase学习笔记(2)
- 排序算法一