POJ 1314 Finding Rectangles G++

本文介绍了一个通过枚举算法解决四点确定矩形的问题。使用C++编程语言实现,程序首先读取输入的点集坐标,然后遍历所有可能的组合来检查是否存在满足条件的四个点可以构成矩形的情况。若找到符合条件的四点组,则输出这些点的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
//英语      看博友分析      抄博友程序        枚举 
struct nod{
	char name;
	int x,y;
}da[100];
int main()
{
	int tag=0;
	while(1)
	{
		tag++;
		int n;
		cin>>n;
		if(n==0)
		{
			break;
		}
		for(int i=0;i<n;i++)
		{
			cin>>da[i].name>>da[i].x>>da[i].y;
		}
		vector<string> ve;
		string s="    ";
		for(int a=0;a<n;a++)
		{
			for(int b=0;b<n;b++)
			{
				if(da[a].y==da[b].y&& da[a].x<da[b].x)
				for(int c=0;c<n;c++)
				{
					if(da[b].x==da[c].x && da[b].y>da[c].y)
					for(int d=0;d<n;d++)
					{
						if(da[d].x==da[a].x && da[c].y==da[d].y)
						{
							s[0]=da[a].name;
							s[1]=da[b].name;
							s[2]=da[c].name;
							s[3]=da[d].name;
							ve.push_back(s);
						}
					}
				}
			}
		}
		sort(ve.begin(),ve.end());
		if(ve.size()==0)
		{
			cout<<"Point set "<<tag<<": No rectangles"<<endl;
		}else
		{
			cout<<"Point set "<<tag<<":"<<endl;
			for(int i=0;i<ve.size();i++)
			{
				cout<<' '<<ve[i];
				if(i%10==9&& i!=(ve.size()-1))
				{
					cout<<endl;
				}
			}
			cout<<endl;
		}
	}
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值