题目链接
题目描述
解题思路
一开始想用map嵌套,但是后面得不到满分,然后上网搜了一下题解,用map<pair<int,int> int>就能满分,因为之前也没用过pair,所以学习了一下基本的用法
p=make_pair(数据1,数据2)
调用
p.first 调用第一个元素
p.second 调用第二个元素
题解
#include<bits/stdc++.h>
using namespace std;
pair<int,int> p[1005];
int main(){
map<pair<int,int>,int> ma;
int n;
cin>>n;
for(int i=0;i<n;i++){
int x,y;
cin>>x>>y;
p[i]=make_pair(x,y);
ma[p[i]]=1;
}
vector<int> v(5);
for(int i=0;i<n;i++){
int x=p[i].first;
int y=p[i].second;
if(ma[make_pair(x, y-1)]&&ma[make_pair(x, y+1)]&&ma[make_pair(x+1, y)]&&ma[make_pair(x-1, y)]){
v[ma[make_pair(x-1, y-1)]+ma[make_pair(x+1, y-1)]+ma[make_pair(x+1, y+1)]+ma[make_pair(x-1, y+1)]]++;
}
}
for(int i=0;i<5;i++){
cout<<v[i]<<endl;
}
}