CCF_201912-2 回收站选址(C++_暴力_枚举)

在这里插入图片描述在这里插入图片描述在这里插入图片描述

思路

本来想用dfs来着,有垃圾的地方就标一后来看到数的大小为 1 0 9 10^9 ,数量却只有 1 0 3 10^3 就果断暴力了…

Code

#include<bits/stdc++.h>//暴力枚举
using namespace std;
typedef long long ll;
ll x[1010], y[1010], num[1010], score[1010], ans[10];
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)//录入地址
		cin >> x[i] >> y[i];
	for(int i=1;i<=n;i++)
		for (int j = i + 1; j <= n; j++)
			if (x[i] == x[j] && y[i] == y[j] - 1 || x[i] == x[j] && y[i] == y[j] + 1 || x[i] == x[j] + 1 && y[i] == y[j] || x[i] == x[j] - 1 && y[i] == y[j])//暴力枚举
			{
				num[j]++;
				num[i]++;
			}
	for (int i = 1; i <= n; i++)
		if (num[i] == 4)//符合选址要求
			for (int j = 1; j <= n; j++)
				if (x[j] == x[i] - 1 && y[j] == y[i] - 1 || x[j] == x[i] - 1 && y[j] == y[i] + 1 || x[j] == x[i] + 1 && y[j] == y[i] + 1 || x[j] == x[i] + 1 && y[j] == y[i] - 1)
					score[i]++;
	for (int i = 1; i <= n; i++)
		if (num[i] == 4)
			ans[score[i]]++;
	for (int i = 0; i <= 4; i++)
		cout << ans[i] << endl;
	return 0;
}
发布了228 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43510916/article/details/104312723