CCF 201912-2 回收站选址 (简单思路,纯数组解决)

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:34   1905   0

#include<bits/stdc++.h>
#include<iostream>
using namespace std;

int main()
{
 int n,m;
 cin>>n;
 
 int a[n][4];
 int b[6];

b[1]=0;
b[2]=0;
b[3]=0;
b[4]=0;
b[5]=0;
 for(int i=1;i<=n;i++)
 {
      cin>>a[i][1]>>a[i][2];
      a[i][3]=0;
      a[i][4]=-1;
 }

   for(int i=1;i<=n;i++)
 {
  for(int j=1;j<=n;j++)
  {
  
   if(a[i][1]+1==a[j][1]&&a[i][2]==a[j][2])
         a[i][3]++;
     
   if(a[i][1]-1==a[j][1]&&a[i][2]==a[j][2])   
      a[i][3]++;
 
   if(a[i][1]==a[j][1]&&a[i][2]-1==a[j][2])
      a[i][3]++;
 
   if(a[i][1]==a[j][1]&&a[i][2]+1==a[j][2])
      a[i][3]++;
   // cout<<a[i][3]<<endl;
  }
  
  if(a[i][3]==4)
      a[i][4]++;
      
// cout<<a[i][3]<<endl; 
  
  if(a[i][4]==0)
  { // cout<<i<<endl;
   for(int j=1;j<=n;j++)
   {
  
   if(a[i][1]+1==a[j][1]&&a[i][2]+1==a[j][2])
         a[i][4]++;
     
   if(a[i][1]-1==a[j][1]&&a[i][2]-1==a[j][2])   
      a[i][4]++;
 
   if(a[i][1]+1==a[j][1]&&a[i][2]-1==a[j][2])
      a[i][4]++;
 
   if(a[i][1]-1==a[j][1]&&a[i][2]+1==a[j][2])
      a[i][4]++;
      
   }
//    cout<<a[i][4];
   if(a[i][4]==0)
      b[1]++;
   if(a[i][4]==1)
      b[2]++;
   if(a[i][4]==2)
      b[3]++;
   if(a[i][4]==3)
      b[4]++;   
   if(a[i][4]==4)
      b[5]++;  
  }    
  
 }
 
 
 for(int i=1;i<=5;i++)
  {

       cout<<b[i]<<endl;
     }
 return 0;
 } 
 
 //取b[5]时不知为何b[0]=-1,以后再不用b[0] 
 
 /*
 7
1 2
2 1
0 0
1 1
1 0
2 0
0 1
*/

总结:

写题时未考虑内存等问题,往后须知,只会用数组,,,就很菜

思路:

就模拟一下,将坐标存入数组a[i][1],a[i][2],使用a[i][3]判定是否为回收站,使用a[i][4]计算评分,最后b[i]输出

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP