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 二分图最大匹配,基础题的更多相关文章

  1. POJ 2226二分图最大匹配

    匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图 ...

  2. POJ Evacuation /// 二分图最大匹配

    题目大意: 在一个n*m的房间中 ‘X’为墙 ‘D’为门 ‘.’为人 门只存在与外围 人每秒钟只能向四连通区域走一步 门比较狭窄 每秒钟只能通过一个人 求所有人逃脱的最短时间 如果不可能则输出impo ...

  3. Asteroids - poj 3041(二分图最大匹配问题)

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17258   Accepted: 9386 Description Be ...

  4. poj 2724 二分图最大匹配

    题意: 会给出M个串,我们要做的就是将这M个串给清除了.对于任意两个串,若二进制形式只有一位不一样,那么这两个串可以在一次操作消除,否则每个操作只能消除一个串. 3 3 *01 100 011 可以代 ...

  5. nyoj_239:月老的难题@_@(二分图匹配基础题)

    题目链接 放假回家不知道多少人被父母催着去相亲啊hhhhhhhhhhhhhh @_@ 参考:二分图的最大匹配.完美匹配和匈牙利算法 #include<bits/stdc++.h> usin ...

  6. POJ 3320 尺取法(基础题)

    Jessica's Reading Problem Description Jessica's a very lovely girl wooed by lots of boys. Recently s ...

  7. poj 2446 二分图最大匹配

    思路:由(i+j)为偶数的点向(i+j)为奇数的点建边.求一次最大匹配,若正好为空格数(不包含洞)的一半,即输出YES. #include<iostream> #include<cs ...

  8. poj 1469 二分图最大匹配

    就是最简单的最大匹配,没的说 #include<iostream> #include<cstdio> #include<cstring> #include<a ...

  9. poj 1469(二分图 最大匹配)

    这道题让我认识到了c++cin,cout确实会使其超时,还是我用的c printf吧 #include<cstdio> #include<iostream> #include& ...

随机推荐

  1. 【20140113】package 与 import

    一个完整的java源程序应该包括下列部分: package语句: //该部分至多只有一句,必须放在源程序的第一句 import语句: public classDefinition: //公共类定义部分 ...

  2. 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

    虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...

  3. 5-06使用Sql 语句为表添加约束

    约束名的命名规则推荐采用:约束类型_约束列. 为用户表添加约束 ALTER TABLE UserInfo ADD CONSTRALNT PK_UserId PRIMATY REY(UserId) CO ...

  4. ubuntu wubi非在线快速安装

    最近ubuntu更新了,就想把它重新装回来试一下,但是由于种种原因划分磁盘不太方便,很自然就想到了wubi,这个不仅仅安全性高,而且比直接装系统快多了,而且方便.但是在线安装实在是太慢了,所以就找到了 ...

  5. [Linux][Hadoop] 将hadoop跑起来

    前面安装过程待补充,安装完成hadoop安装之后,开始执行相关命令,让hadoop跑起来   使用命令启动所有服务: hadoop@ubuntu:/usr/local/gz/hadoop-$ ./sb ...

  6. 限定符【const】用法大全

    1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法 2. 必须初始化 const int i=5; //合法 c ...

  7. 谈谈网站插入youtube视频播放

    最近需要在网页首页追加视频播放功能. 需要播放youtube视频.中间遇到一些波折.特来分享一下. 首先像网页添加视频文件我们通常够采用embed标签. 标签里可以设置很多的关键子.我们可以配置为fl ...

  8. 设定自动获得DNS服务器地址

    情况说明:操作系统是Win7 64位, 网络是有线 1 2 3 4 5

  9. Quartz.NET配置

    概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性.Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行 ...

  10. 【转】saiku与kylin整合备忘录

    http://blog.csdn.net/freefishly/article/details/51759133 为什么要整合? Kylin是通过离线预计算将Hive中事实表的各组合维度的值存储在Hb ...