一个点集是学生,一个点集是排名。然后通过学生的排名范围连线,求此二分图的最大匹配。

本题还要求是最大字典序输出,那么由贪心可得,你让标号从大到小找增广边就行了。

#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <fstream>
#include <iostream>#define rep(i, l, r) for(int i=l; i<=r; i++)
#define down(i, l, r) for(int i=l; i>=r; i--)
#define N 69
#define M 100009using namespace std;
int read()
{int x=0, f=1; char ch=getchar();while (ch<'0' || ch>'9') { if (ch=='-') f=-1; ch=getchar(); }while (ch>='0' && ch<='9') { x=x*10+ch-'0'; ch=getchar(); }return x*f;
}int n, l[N], r[N], k[M], b[M], ans, ansk[N], s;bool Find(int x)
{rep(i, l[x], r[x]) if (b[i]!=s) {b[i]=s; if (!k[i] || Find(k[i])) { k[i]=x; return true; }}return false;
}int main()
{int t=read(); while (t--){n=read();rep(i, 1, n) l[i]=read(), r[i]=read();rep(i, 1, M-1) k[i]=b[i]=0; rep(i, 1, n) ansk[i]=0; ans=0;down(i, n, 1) if (Find(s=i)) ans++, ansk[i]=1;printf("%d\n", ans);rep(i, 1, n) if (ansk[i]) { if (--ans) printf("%d ", i); else printf("%d\n", i); }}return 0;
}

  

转载于:https://www.cnblogs.com/NanoApe/p/4345570.html

HDU-3729 I'm Telling the Truth相关推荐

  1. HDU 3729 I'm Telling the Truth(二分图最大匹配)

    HDU 3729 I'm Telling the Truth(二分图最大匹配) http://acm.hdu.edu.cn/showproblem.php?pid=3729 题意: 一位老师想问N位同 ...

  2. hdu3729—I'm Telling the Truth(二分图最大匹配)

    题目链接:传送门 I'm Telling the Truth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. hdu 3729(二分图最大匹配+最大字典序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3729 解题思路:节点i对Xi~Yi之间的每一个点都连一条边,这样问题就转化成二分图的最大匹配了.字典序 ...

  4. I'm Telling the Truth(二分图匹配)

    原题 题意: 有n个学生,你想了解他们的成绩.每个人告诉你他们的名次区间在x~y之间(闭区间),你需要判断最多说真话的人数,并输出这些人的编号,多种情况时输出最大字典序的一组 思路 该题目乍一看像并查 ...

  5. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  6. 解题报告 (九) 二分图最大匹配

    文章目录 二分图最大匹配 解题报告 一.最大匹配模板题 HDU 1083 Courses HDU 2063 过山车 HDU 1528 Card Game Cheater HDU 1179 Olliva ...

  7. linux火狐中设置中文,Ubuntu中firefox设置成中文

    收集的maven 仓库地址(maven repository) maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/http://repository.jbo ...

  8. (转)2-sat 专题

    [2-sat]专题- 2-sat是一个逻辑性很强的算法,但是其套路比较固定,所以不是很热,题目很少,但也不乏AC后让人大呼爽快的好题,下面放出两篇极品论文还有几道题目的题解以供交流-- 2-sat学习 ...

  9. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  10. POJ.3207.Ikki's Story IV-Panda's Trick(2-SAT)

    题目链接 \(Description\) 一个圆上顺序排列0,1,...,n-1共n个点,给出m条线段,线段可以从里面连也可以从外面连,问是否能满足所有线段不相交 \(Solution\) 把每条线段 ...

最新文章

  1. GPT2文本生成有问题?这里有些潜在解决思路
  2. python基础知识选择题-99道经典练习题助你全面掌握python基础知识,附技巧答案...
  3. 以太币(Ether)的单位
  4. 利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件
  5. Flutter入门:Image组件
  6. NSPredicate的用法、数组去重、比较...
  7. 程序员面试金典 - 面试题 16.10. 生存人数(自定义优先队列)
  8. 文学系列:《叶之震颤》读书笔记
  9. Json 入门例子【3】
  10. java如何让cpu过负荷_服务器开发过载问题如何解决
  11. 开源阅读书源_开源阅读——(免费)
  12. windows注册表文件关联机制
  13. web一阶段 day13 阿里矢量图库的使用方法
  14. SE Block (Sequeze and Excitation)
  15. Ribbon负载均衡分析
  16. 华东师范大学计算机组成原理教材,华东师范大学计算机组成原理.ppt
  17. 世界名著《平凡的世界》读后感3800字范文
  18. ROS中的imu_transformer包是什么,在哪里可以下载啊
  19. Android 项目必备(二十六)-->获取手机中所有 APP
  20. Gradle报错:Could not find ××× ,‘dependencies.× .× ‘ for × must specify an absolute path but is ${env.

热门文章

  1. Azure Kinect SDK Ubuntu18.04安装使用
  2. redis集群环境搭建入门
  3. Hbase Scan类 ResultScanner类
  4. Windows核心编程_LOG软件
  5. 深入浅出解读 Java 虚拟机的差别测试技术
  6. 【跃迁之路】【479天】程序员高效学习方法论探索系列(实验阶段236-2018.05.30)...
  7. 实用教程:使用Netflow分析网络异常流量
  8. NSURLSession学习笔记(二)Session Task
  9. 没事不要在for循环期间增减迭代序列的成员
  10. 迁移应用程序到.NET Framework 4.5:弃用类型与新特性