`
java-mans
  • 浏览: 11741907 次
文章分类
社区版块
存档分类
最新评论

POJ-1486-Sorting Slides

 
阅读更多

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源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客

    POJ1007-DNA Sorting

    【标题】"POJ1007-DNA Sorting"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目要求参赛者编写程序,对DNA序列进行排序,具体而言,就是对一系列由ATCG四种碱基组成的DNA字符...

    poj-1009.rar_poj

    【标题】"POJ-1009"是北大在线编程竞赛平台上的一个题目,它涉及到计算机科学中的算法和编程技巧。POJ(Problem Set of Peking University)是中国北京大学主办的一个在线编程竞赛平台,旨在提高学生的算法设计和...

    POJ---1456.Supermarket测试数据及答案

    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解题

    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

    ### 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-2151.rar_poj"是一个与编程竞赛相关的压缩文件,主要涉及的问题是“检查问题的难度”,并且是为动态规划的实战练习而设计的。这个题目来自于著名的在线编程竞赛平台POJ(Programming Online Judge)。 ...

    POJ3253-POJ3253-Fence Repair【STL优先队列】

    标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...

    poj-1028-Web-Navigation.zip_poj

    【标题】"poj-1028-Web-Navigation.zip_poj" 指向的是一个编程竞赛问题,POJ(Programming Online Judge)平台上的第1028题,名为“Web Navigation”。该问题通常涉及到算法设计和实现,可能是为了考察参赛者的编程...

    poj-2528 Mayor's posters 测试数据及答案

    【标题】"poj-2528 Mayor's posters 测试数据及答案"涉及的是一个编程竞赛中的问题,这个问题来源于POJ(Programming Online Judge)平台,编号为2528。POJ是一个在线的编程练习系统,它提供了一系列的问题供程序员...

    POJ-1170.rar_poj

    标题中的“POJ-1170.rar_poj”指的是编程竞赛网站POJ(Programming Online Judge)上的一个问题,编号为1170。POJ是一个在线的编程练习平台,主要面向学习和提升算法与编程技能的用户。这个问题的解决方案可能包含在...

    POJ2002-Squares

    【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...

    POJ2525-Text Formalization【TrieTree】

    《POJ2525-Text Formalization:深入解析TrieTree》 在计算机科学的世界里,算法和数据结构是解决问题的关键。今天我们要探讨的是一个名为"POJ2525-Text Formalization"的问题,它涉及到一种高效的数据结构——Trie...

    poj 1000 - 2000 部分题目 官方分类

    《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...

Global site tag (gtag.js) - Google Analytics