CSP-CCF★201912-2回收站选址★

一、问题描述

二、解答

代码:

cpp 复制代码
#include<iostream>
#include<map>
using namespace std;
struct rubbish{
	int x;
	int y;
}rub[1000];
int n;
void input(){
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>rub[i].x>>rub[i].y;
	}
}
bool has(int p,int q){//判断该处是否有垃圾
//注意代码的简洁
	int j=0;
	for(int i=0;i<n;i++)
	{
		if(p==rub[i].x&&q==rub[i].y){
			return true;
		}
//		else{
//			j++;
//		}
	}
//	if(j==n){
		return false;
//	}	
}
map<int,int>mp;//使用map,一个分数对应一个个数
int main()
{	
	input();
	int p,q;
	for(int i=0;i<=4;i++)
	{
		mp[i]=0;
	}
	for(int i=0;i<n;i++)
	{
		p=rub[i].x;
		q=rub[i].y;
		int score=0;
		if(has(p+1,q)&&has(p-1,q)&&has(p,q+1)&&has(p,q-1)){
			if(has(p-1,q-1)){score++;
			}
			if(has(p-1,q+1)){score++;
			}
			if(has(p+1,q-1)){score++;
			}
			if(has(p+1,q+1)){score++;
			}
			if(score==0){mp[score]++;}
			else if(score==1){mp[score]++;}
			else if(score==2){mp[score]++;}
			else if(score==3){mp[score]++;}
			else if(score==4){mp[score]++;}
		}
	}
	for(int i=0;i<=4;i++){
		cout<<mp[i]<<endl;
	}
	return 0;
}
相关推荐
没头脑的男大14 小时前
关于删除列表的那些事儿
算法
Book思议-14 小时前
【数据结构实战】线性表的应用
c语言·数据结构·算法·链表
qq_4614893314 小时前
C++与Qt图形开发
开发语言·c++·算法
Yzzz-F14 小时前
Problem - 2194E - Codeforces
算法
像污秽一样14 小时前
算法设计与分析-习题12.2
算法·迭代改进·分支界限
x_xbx14 小时前
LeetCode:83. 删除排序链表中的重复元素
算法·leetcode·链表
_小草鱼_14 小时前
【搜索与图论】DFS算法(深度优先搜索)
算法·深度优先·图论·回溯·递归
美好的事情能不能发生在我身上15 小时前
Hot100中的:图论专题
图论
I_LPL15 小时前
hot100 栈专题
算法·
小菜鸡桃蛋狗15 小时前
C++——类和对象(上)
开发语言·c++