POJ-1486-Sorting Slides
http://poj.org/problem?id=1486
给出一些矩形的坐标和一些点的坐标,若点在矩形内,则该点和该矩形匹配,问是否存在某个匹配在所有的完美匹配中,这题可以先任意找出一个完美匹配,然后依次删除该匹配的每一条边,若仍能构成完美匹配,则这个匹配不唯一,若不能构成完美匹配,则该匹配唯一
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
#define MAX 1000
int map[MAX][MAX],path[MAX];
int visit[MAX],result[MAX];
struct cam
{
int x1,x2,y1,y2;
}list[MAX];
int n;
int find(int a)
{
int i;
for(i=0;i<n;i++)
if(!visit[i]&&map[a][i])
{
visit[i]=1;
if(result[i]==-1||find(result[i]))
{
result[i]=a;
return 1;
}
}
return 0;
}
int solve()
{
int i,ans;
ans=0;
memset(result,-1,sizeof(result));
for(i=0;i<n;i++)
{
memset(visit,0,sizeof(visit));
if(find(i))
ans++;
}
return ans;
}
int main()
{
int x1,x2,y1,y2,i,j,flag;
int x,y;
int cas=1,ans;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d%d%d%d",&list[i].x1,&list[i].x2,&list[i].y1,&list[i].y2);
memset(map,0,sizeof(map));
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
for(j=0;j<n;j++)
{
if(x>list[j].x1&&x<list[j].x2&&y>list[j].y1&&y<list[j].y2)
map[i][j]=1;
}
}
ans=solve();
flag=0;
printf("Heap %d\n", cas++);
if(ans==n)
{
for(i=0;i<n;i++)
path[i]=result[i];
for(i=0;i<n;i++)
{
map[path[i]][i]=0; //删边
if(solve()==n) //再做一次二分匹配
continue;
else
{
if(flag)
printf(" ");
printf("(%c,%d)",'A'+i,path[i]+1);
flag=1;
}
map[path[i]][i]=1;
}
}
if(!flag)
printf("none");
printf("\n\n");
}
return 0;
}
分享到:
相关推荐
poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客
【标题】"POJ1007-DNA Sorting"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目要求参赛者编写程序,对DNA序列进行排序,具体而言,就是对一系列由ATCG四种碱基组成的DNA字符...
【标题】"POJ-1009"是北大在线编程竞赛平台上的一个题目,它涉及到计算机科学中的算法和编程技巧。POJ(Problem Set of Peking University)是中国北京大学主办的一个在线编程竞赛平台,旨在提高学生的算法设计和...
POJ---1456.Supermarket测试数据及答案,题目描述:A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral ...
POJ-3299解题 C++源代码 Description Adapted from Wikipedia, the free encyclopedia The humidex is a measurement used by Canadian meteorologists to reflect the combined effect of heat and humidity. It...
### ACM新手刷题攻略之POJ ... - 推荐题目:[poj1068](https://vjudge.net/problem/POJ-1068)、[poj2632](https://vjudge.net/problem/POJ-2632)、[poj1573](https://vjudge.net/problem/POJ-1573)、[poj2993]...
【标题】"POJ-2151.rar_poj"是一个与编程竞赛相关的压缩文件,主要涉及的问题是“检查问题的难度”,并且是为动态规划的实战练习而设计的。这个题目来自于著名的在线编程竞赛平台POJ(Programming Online Judge)。 ...
标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...
【标题】"poj-1028-Web-Navigation.zip_poj" 指向的是一个编程竞赛问题,POJ(Programming Online Judge)平台上的第1028题,名为“Web Navigation”。该问题通常涉及到算法设计和实现,可能是为了考察参赛者的编程...
【标题】"poj-2528 Mayor's posters 测试数据及答案"涉及的是一个编程竞赛中的问题,这个问题来源于POJ(Programming Online Judge)平台,编号为2528。POJ是一个在线的编程练习系统,它提供了一系列的问题供程序员...
标题中的“POJ-1170.rar_poj”指的是编程竞赛网站POJ(Programming Online Judge)上的一个问题,编号为1170。POJ是一个在线的编程练习平台,主要面向学习和提升算法与编程技能的用户。这个问题的解决方案可能包含在...
【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...
《POJ2525-Text Formalization:深入解析TrieTree》 在计算机科学的世界里,算法和数据结构是解决问题的关键。今天我们要探讨的是一个名为"POJ2525-Text Formalization"的问题,它涉及到一种高效的数据结构——Trie...
《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...