2019-12-02 CSP 回收站选址

算法:

使用pairP存储垃圾位置,map存储垃圾位置和垃圾数目。寻找回收站的时候,遍历map中的每一个位置it,当it的上下左右都在map中时,满足回收站条件,继续针对这个位置计算它的得分,方法和上述过程类似。

#include
using namespace std;
typedef pairP;
int main(){
   int score[5]={0,0,0,0,0};
   mapmp;//存储垃圾点坐标和出现次数
   int n;
   cin>>n;
   while(n--){
       P p;
       cin>>p.first>>p.second;
       mp[p]=mp[p]+1;//出现次数+1
   }
   for(auto it=mp.begin();it!=mp.end();it++){//遍历垃圾点
       P p=it->first;
       int x,y;
       x=p.first;
       y=p.second;
       if(mp.count(P(x-1,y))&&mp.count(P(x+1,y))&&mp.count(P(x,y-1))&&mp.count(P(x,y+1)))//上下左右均存在垃圾
       {
           int s=mp.count(P(x-1,y-1))+mp.count(P(x+1,y+1))+mp.count(P(x+1,y-1))+mp.count(P(x-1,y+1));//计算对角处的垃圾数量
           score[s]++;
       }
   }
   for(int i=0;i<5;i++)
       cout<

是不是很简单呢?
CSP第一、二题主要考察STL的应用,掌握了基本的操作之后,通过前两个没什么问题。

你可能感兴趣的:(CSP)