文章目录

  • 题目描述
    • 数据范围
  • 解析
  • 解析

题目描述

有一堆透明的幻灯片堆叠在一起,每个幻灯片上的随机一个位置会有幻灯片的标号。
因为幻灯片是透明的,所以堆叠在一起的幻灯片使得这些标号分不清各自对应的幻灯片。
现在要求你求出那些能够确定对应关系的幻灯片以及对应的标号。

数据范围

n<=26n<=26n<=26

解析

面对这样的数据范围,我还是不够暴力…
关键的思路就是暴力枚举每一条边,判断删掉这条边之后是否仍是完美匹配

解析

#include<bits/stdc++.h>
using namespace std;
const int N=65;
#define ll long long
ll read(){ll x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();};while(isdigit(c)){x=x*10+c-'0';c=getchar();};return x*f;
}
int n,m;
struct node{int from,to,nxt;
}p[N*N*2];
int fi[N],cnt=-1;
void addline(int x,int y){p[++cnt]=(node){x,y,fi[x]};fi[x]=cnt;
}
int a[N],b[N],c[N],d[N],x[N],y[N];
bool in(int x,int y,int i){//printf("x=%d y=%d i=%d %d %d %d %d\n",x,y,i,a[i],b[i],c[i],d[i]);//printf("  %d %d %d %d\n",x>=a[i],x<=b[i],y>=c[i],y<=d[i]);return x>=a[i]&&x<=b[i]&&y>=c[i]&&y<=d[i];
}
int E;
int vis[N],mat[N],num,ans[N];
bool dfs(int x,int tim){if(vis[x]==tim) return false;vis[x]=tim;for(int i=fi[x];~i;i=p[i].nxt){if(i==E) continue;int to=p[i].to;if(!mat[to]||dfs(mat[to],tim)){mat[to]=x;return true;}}return false;
}
int hangary(){int res=0;memset(vis,0,sizeof(vis));memset(mat,0,sizeof(vis));for(int i=1;i<=n;i++){if(dfs(i,i)) res++;}return res;
}
int main(){int o=0;while(scanf("%d",&n)!=EOF){if(!n) break;memset(fi,-1,sizeof(fi));cnt=-1;num=0;memset(ans,0,sizeof(ans));for(int i=1;i<=n;i++){a[i]=read();b[i]=read();c[i]=read();d[i]=read();}for(int i=1;i<=n;i++){x[i]=read();y[i]=read();for(int j=1;j<=n;j++){if(in(x[i],y[i],j)){addline(j,i+n);}}}for(int i=0;i<=cnt;i++){E=i;if(hangary()!=n){num++;ans[p[i].from]=p[i].to-n;}}printf("Heap %d\n",++o);if(!num) printf("none\n");else{for(int i=1;i<=n;i++){if(ans[i]) printf("(%c,%d) ",'A'+i-1,ans[i]);}printf("\n");}printf("\n");}return 0;
}
/*
*/

YBTOJ:幻灯片(二分图匹配)相关推荐

  1. YbtOJ#573-后缀表达【二分图匹配】

    正题 题目链接:https://www.ybtoj.com.cn/contest/115/problem/2 题目大意 给出一个包含字母变量和若干种同级操作符的后缀表达式.求一个等价的表达式满足该表达 ...

  2. Dinic二分图匹配 || Luogu P3386

    题面:[模板]二分图匹配 思路:Dinic实现二分图匹配,要建一个超级源点(S)和超级汇点(T),分别定为N+M+1和N+M+2 然后S去和N中的数建正边和反边,正边权值为1,反边权值为0:M中的数去 ...

  3. 二分图匹配匈牙利算法DFS实现

    1 /*==================================================*\ 2 | 二分图匹配(匈牙利算法DFS 实现) 3 | INIT: g[][]邻接矩阵; ...

  4. poj1274(二分图匹配)

    (一道基础的二分图匹配) 题目意思大概为N个牛和M个栅栏,一个牛和一个栅栏只能匹配一次,求最大匹配 直接套用二分图最大匹配模板即可 #include <iostream> #include ...

  5. poj2724(二分图匹配)

    题目大概意思为有部分奶酪需要处理,若两个奶酪的二进制只有一位不同,则可以一起处理,问最少需要处理几次 题目思路: 将可以一起处理的两个奶酪用边连接在一起,相当于边只连接二进制中有偶数个1的奶酪和二进制 ...

  6. 算法模板——二分图匹配

    实现功能为二分图匹配 原理:匈牙利算法,核心思想--匹配上了就配,没直接匹配上也要通过前面的腾出位置让这个匹配上(详见:趣写算法系列之--匈牙利算法) 本程序以Codevs2776为例 详见Codev ...

  7. 算法:ACM二分图匹配 HDU2063

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 摘录于互联网,原创作者redraiment,很详细的二分图匹配入门资料! 2063 过山车 Pr ...

  8. BZOJ1433 [ZJOI2009]假期的宿舍 - 二分图匹配

    题解 一道裸的二分图匹配,稍微有一点细节需要注意, 但是非常裸= = 本校并且住校的向自己的床和 自己认识的并且本校的人的床连边 离校的不需要向外连边 不是本校的就和自己认识的 并且是本校的人的床连边 ...

  9. POJ2536 二分图匹配

    题意:      有n只老鼠,m个洞,每个洞最多可以藏一只老鼠,每个老鼠的移动速度都是v,给你他们的当前坐标,和洞的坐标,突然老鹰来了,他们必须在s秒内跑到一个洞藏起来,问你最少有多少只老鼠被抓走了. ...

  10. URAL 1721 Two Sides of the Same Coin(二分图匹配,输出匹配对象)

    题意:给出n个人的信息,名字.特征.排名. 在排名相差2的前提下,特征为testdata可以与特征为statements的组队,特征为anything可以任何一人组队: 求最多匹配对数,并将每队名字输 ...

最新文章

  1. HDU4009(最小树形图)
  2. 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?
  3. FileReader (三) - 网页拖拽并预显示图片简单实现
  4. Swift之深入解析“泛型”的底层原理
  5. IOS开发之MD5加密和钥匙串的使用-oc
  6. 【报告分享】见实私域流量白皮书:私域流量案例实操手册.pdf
  7. 华景机器人怎么控制_【扫地机器人选购】支持华为hilink智能家居联动/支持华为小艺语音控制的扫地机器人...
  8. python二进制解码_使用python3对二进制数据进行编码和解码,以将其包含到JSON中...
  9. 掌握这几个 Java 性能调优技巧,95%的面试必问的Java性能调优知识点,
  10. windows scrip host报错代码:800A00D
  11. 视频教程-项目经理俱乐部-项目实战.职场求生.敏捷.企业管理-敏捷开发
  12. 【折半查找二叉判定树】
  13. 瓜娃系列 (6) - ComparisonChain和primitives包
  14. 浅谈大数据平台架构设计
  15. 8.4 内存映射文件
  16. Android中的Menu功能菜单-OptionsMenu[选项菜单]
  17. labview事件结构的使用
  18. GemBox.Pdf v15Crack
  19. 日语 N5 知识点 - 何为五段动词
  20. Python 验证Mac地址

热门文章

  1. java注解 sql_mybatis中注解映射SQL示例代码
  2. java hdms_字段为clob类型,无法插入数据
  3. vst3插件_Steinberg发布新的VST 3.7 SDK,音乐软件开发者速来围观
  4. 软件构造学习笔记-第九周、第十周
  5. 软件构造学习笔记-第四周
  6. 还不会ts?一文带你打开ts的大门
  7. 『软件工程9』结构化系统分析——解决软件“做什么”问题
  8. 计算机软件在矿井地质中的应用,(完整版)遥感导论知识点整理(梅安新版)
  9. [Redis6]NoSQL数据库简介_特点
  10. C++,Java编程空指针的一个小细节