UVA663 Sorting Slides(烦人的幻灯片)
UVA663 Sorting Slides(烦人的幻灯片)
第一次做到这么玄学的题,在《信息学奥赛一本通》拓扑排序一章找到这个习题(却发现标程都是错的),结果用二分图匹配做了出来
蒟蒻感觉思路不太好想,难度大概在蓝题~紫题。。
那是因为UVa输出换行空格万年老坑
#include<cstdio>
#include<cstring>
using namespace std;
#define N 27
int vis[N],match[N],ans[N],x1[N],x2[N],y1[N],y2[N],n,T;
bool g[N][N],flag;
inline bool dfs(int x) {
for (register int i=1; i<=n; i++)
if (!vis[i] && g[x][i]) {
vis[i]=1;
if (!ans[i] || dfs(ans[i])) {
ans[i]=x;//第 i 个幻灯片对应数字为 x
return true;
}
}
return false;
}
inline int find() {//求二分图最大匹配
int sum=0;
memset(ans,0,sizeof ans);
for (register int x=1; x<=n; x++){
memset(vis,0,sizeof vis);
if (dfs(x)) sum++;// 总匹配数
}
return sum;
}
int main() {
while(~scanf("%d",&n) && n) {
if (T) puts("");
printf("Heap %d\n",++T);
memset(g,0,sizeof g);
for (int i=1; i<=n; i++)
scanf("%d%d%d%d",&x1[i],&x2[i],&y1[i],&y2[i]);
for (int i=1,x,y; i<=n; i++) {
scanf("%d%d",&x,&y);
for (int j=1; j<=n; j++)
if (x>=x1[j] && x<=x2[j] && y>=y1[j] && y<=y2[j])
g[i][j]=1;//如果数字在幻灯片范围之内的话则连边,有机会匹配
}
int tot=find(),flag=0;
自此已求出当前的匹配,但程序还未结束,如果在此输出答案:
for (int i=1;i<=n;i++) printf("(%c,%d)",i-1+'A',ans[i]);
按照样例数据,你会发现第一组数据已有正确答案,而第二组数据不是none,而输出了匹配情况
这是因为题目还有一个要求:
若出现多种对应的情况,我们称这种对应是无法实现的。
第二组数据中A和B都可以匹配1和2中任意一个,所以对应不唯一
//接下来我们要去除这种情况
for (int j=1; j<=n; j++)
for (int i=1;i<=n; i++)
if (g[i][j]) {
g[i][j]=0;//考虑依次删去每条边,如果有唯一对应,那么至少有一边删去后使匹配数减少
if (find()!=tot) {
if (flag) printf(" ");
else flag=1;
printf("(%c,%d)",j-1+'A',i);//如果幻灯片 j 与 数字 i 是唯一搭配,直接输出
}
g[i][j]=1;
}
if (!flag) printf("none");//如果删去任意一边匹配数都不变,则对应不唯一
puts("");//相当于printf("\n");
}
return 0;
}
UVA663 Sorting Slides(烦人的幻灯片)的更多相关文章
- 【拓扑排序】烦人的幻灯片(slides)
1395:烦人的幻灯片(slides) 时间限制: 1000 ms 内存限制: 65536 KB提交数: 753 通过数: 416 [题目描述] 李教授将于今天下午作一次非常重 ...
- sdibt 1244 烦人的幻灯片
在这个OJ站还没号,暂时没提交,只是过了样例 真不愧是烦人的幻灯片,烦了我一小时 ---更新:OJ测试完毕,AC 烦人的幻灯片问题 Time Limit: 1 Sec Memory Limit: 6 ...
- 病毒&烦人的幻灯片
<病毒>传送门 <烦人的幻灯片>传送门 病毒 描述 有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改 ...
- SID1190471 / 烦人的幻灯片 暴力出奇迹 !!!!!!!!!!!!!!!!!!
PID221 / 烦人的幻灯片 ☆ 提交你的代码 查看讨论和题解 你还木有做过哦 我的状态 查看最后一次评测记录 质量还不能统计出来哦~ 题目评价 质量 无 ★★★★★ ★★★★☆ ★ ...
- VIJOS PID221 / 烦人的幻灯片
暴力出奇迹,学长诚不欺我. PID221 / 烦人的幻灯片 2017-04-14 19:47:08 运行耗时:30 ms 运行内存:12292 KB 查看最后一次评测记录 题目描述 李教授于今天下午 ...
- COGS——T 438. 烦人的幻灯片
http://www.cogs.pro/cogs/problem/problem.php?pid=438 ★☆ 输入文件:slides.in 输出文件:slides.out 简单对比时间限 ...
- PID221 / 烦人的幻灯片☆ x
超详细解释!我都被我自己惊呆了! (这个题目意思我缓冲了很久!一定要读懂题!否则做不出来) 题目不懂就多读呀~ 提交你的代码 查看讨论和题解 题目描述 李教授于今天下午做一个非常重要的演讲.不幸的是他 ...
- poj 1486 Sorting Slides
Sorting Slides Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4469 Accepted: 1766 De ...
- iOS 界面 之 EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具
http://blog.csdn.net/fatherhui iOS开发,EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具 EALa ...
随机推荐
- CUDA配置
你问这个有多恶心,是真的很恶心!!! 首先推出一个博客上的内容,里面内容很不错,都是前车之鉴,很有用.http://blog.csdn.net/masa_fish/article/details/51 ...
- DirectX的替代品 SDL 简介
DirectX的替代品 SDL 简介 什么是SDL? 即 Simple DirectMedia Layer,使用 LGPL 许可证. 免费的跨平台多媒体应用编程接口 用于游戏.游戏开发工具.模拟器.样 ...
- CheckSynchronize实现的不必要的复杂
在system.classes单元中,CheckSynchronize在ThreadLock上持续调用TMonitor的Exit和Enter以保护SyncList. 因为代码做的第一件事是换出Sync ...
- 浅析 C++ 调用 Python 模块
浅析 C++ 调用 Python 模块 作为一种胶水语言,Python 能够很容易地调用 C . C++ 等语言,也能够通过其他语言调用 Python 的模块. Python 提供了 C++ 库,使得 ...
- Spring Cloud微服务简介
概述 Spring Cloud给开发者提供一套按照一定套路快速开发分布式工具.它为微服务架构中涉及**配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,分布式会话和集群状态等操作提供了一 ...
- chrome浏览器开发者工具F12中某网站的sources下的源码如何批量保存?
目录 chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存 1. 常用保存Sources源码的两种方法 1.1单个文件 1.2 单个页面 2. 问题 3.解决方案 chro ...
- C语言-main方法的两个参数是干什么的?
大家都知道C语言的main方法怎么写的吧!但你们知道mian方法里的参数的含义吗? 代码如下: int main(int argc,char *argv[]){ //argc是传进的参数个数 //ar ...
- Hadoop 学习之路(四)—— Hadoop单机伪集群环境搭建
一.前置条件 Hadoop的运行依赖JDK,需要预先安装,安装步骤见: Linux下JDK的安装 二.配置免密登录 Hadoop组件之间需要基于SSH进行通讯. 2.1 配置映射 配置ip地址和主机名 ...
- 将GMap封装为Activex供QT使用(工具:VS2017,QT5.12) 更新部署到其它电脑
由于一开始定的开发平台在QT下,到后面要加入地图控件.qt里本身带有地图qmap(在qt的官方案例中可以找到,用qml做的),但只有固定的几个地图源,要做google或者bing地图,时间和人力不允许 ...
- MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动 ...