poj 2239 二分图最大匹配,基础题
1、poj 2239 Selecting Courses 二分图最大匹配问题
2、总结:看到一个题解,直接用三维数组做的,很巧妙,很暴力。。
题意:N种课,给出时间,每种课在星期几的第几节课上,求最多可上几种课。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; int mapn[][][];
int visit[][],pipei[][]; int findn(int n)
{
for(int i=;i<=;i++){
for(int j=;j<=;j++){
if(!visit[i][j]&&mapn[n][i][j]){ //这个时间点[i][j]要能够和n匹配
visit[i][j]=; if(!pipei[i][j]||findn(pipei[i][j])){ //如果这个时间点没有和其它课匹配,或者已经匹配了但其它课可以换其它时间点。也就是不冲突
pipei[i][j]=n;
return ;
}
}
}
}
return ;
} int main()
{
int n,t,p,q;
while(scanf("%d",&n)!=EOF)
{
memset(mapn,,sizeof(mapn));
for(int i=;i<=n;i++){
scanf("%d",&t);
while(t--){
scanf("%d%d",&p,&q);
mapn[i][p][q]=;
}
} memset(pipei,,sizeof(pipei));
int sum=;
for(int i=;i<=n;i++){
memset(visit,,sizeof(visit));
if(findn(i)){ //查找每种课是否都能匹配不冲突的上课时间
sum++;
}
}
printf("%d\n",sum);
} return ;
}
poj 2239 二分图最大匹配,基础题的更多相关文章
- POJ 2226二分图最大匹配
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图 ...
- POJ Evacuation /// 二分图最大匹配
题目大意: 在一个n*m的房间中 ‘X’为墙 ‘D’为门 ‘.’为人 门只存在与外围 人每秒钟只能向四连通区域走一步 门比较狭窄 每秒钟只能通过一个人 求所有人逃脱的最短时间 如果不可能则输出impo ...
- Asteroids - poj 3041(二分图最大匹配问题)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17258 Accepted: 9386 Description Be ...
- poj 2724 二分图最大匹配
题意: 会给出M个串,我们要做的就是将这M个串给清除了.对于任意两个串,若二进制形式只有一位不一样,那么这两个串可以在一次操作消除,否则每个操作只能消除一个串. 3 3 *01 100 011 可以代 ...
- nyoj_239:月老的难题@_@(二分图匹配基础题)
题目链接 放假回家不知道多少人被父母催着去相亲啊hhhhhhhhhhhhhh @_@ 参考:二分图的最大匹配.完美匹配和匈牙利算法 #include<bits/stdc++.h> usin ...
- POJ 3320 尺取法(基础题)
Jessica's Reading Problem Description Jessica's a very lovely girl wooed by lots of boys. Recently s ...
- poj 2446 二分图最大匹配
思路:由(i+j)为偶数的点向(i+j)为奇数的点建边.求一次最大匹配,若正好为空格数(不包含洞)的一半,即输出YES. #include<iostream> #include<cs ...
- poj 1469 二分图最大匹配
就是最简单的最大匹配,没的说 #include<iostream> #include<cstdio> #include<cstring> #include<a ...
- poj 1469(二分图 最大匹配)
这道题让我认识到了c++cin,cout确实会使其超时,还是我用的c printf吧 #include<cstdio> #include<iostream> #include& ...
随机推荐
- 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]
无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...
- 手机web页面制作时的注意事项
一.手机页面的标准头规范 字符编码使用utf-:指定页面手机内存缓存中的存储时间段 device-width:通知浏览器使用设备的宽度作为可视区的宽度 initial-scale - 初始的缩放比例 ...
- web.xml中同一servlet/filter配置多个url-pattern
转自:http://blog.sina.com.cn/s/blog_4c2c2a0c0100dh67.html 若你的servlet要多个地址,或你的filter需要过滤不同的url如有*.jsp,* ...
- Sizeof与Strlen的区别与联系(转)
Sizeof与Strlen的区别与联系 一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型 ...
- HDU 5213 Lucky 莫队+容斥
Lucky Problem Description WLD is always very lucky.His secret is a lucky number K.k is a fixed odd n ...
- JS自定义属性兼容
var obj={}; if(obj.dataset){ obj.dataset.original="11"; }else{ obj.getAttribute("data ...
- Android学习笔记(一)——安卓开发环境搭建
安装教程以及资源(2015.11.8最新版):链接:http://pan.baidu.com/s/1kTnOsMr 密码:0ogf
- 德飞莱STM32单片机学习(一)——下载环境搭建
一.下载驱动安装. 1.手动打开CH341 文件夹(驱动程序文件夹内) ,双击安装驱动 2. 尼莫M3S 开发硬件设置 硬件需要做到以下2 点:1. USB插入USB1(COM),打开电源开关J14( ...
- 三层+MVC导出Excel(2)
背景: 出门在外,一切以健康为主,学习为辅,健康搞好了,学习也不能拉下,在外工作期间,我们在做数据导出的时候,自己封了一个类,利用NPOI进行数据导出Excel,自我感觉良好,特给大家分享一下,希望对 ...
- 关于如何在MFC工程中输入不同的数据进行调试
我们可以采用c++的文件输入输出来进行调试 这样就绕过了不能使用黑窗口输入数据就不能调试的思维定式 不是黑窗口的我们都可以考虑用文件流输入输出 或者用控件来输入? http://blog.csdn.n ...