CCF-CSP试题201912-2回收站选址 暴力解法满分题解

CCF-CSP试题201912-2回收站选址 暴力解法满分题解

题目地址:201912-2回收站选址

由于此题测试点9和10中坐标可以是负数,则用二维数组存储坐标不好操作,所以此题采用结构体存储坐标
具体代码如下:

#include <bits/stdc++.h>
using namespace std;
struct node{
    int x,y;
    int grade=0;
    int flag=0;
    
};
//判断是否满足垃圾点
bool Jude(node p,int x,int y)
{
    if((p.x==x-1&&p.y==y)||(p.x==x+1&&p.y==y)||(p.x==x&&p.y==y+1)||(p.x==x&&p.y==y-1))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//得出分数,满足此条件则分数+1
bool GetSum(node p, int x ,int y)
{
    
    if((p.x==x-1&&p.y==y-1)||(p.x==x+1&&p.y==y+1)||(p.x==x-1&&p.y==y+1)||(p.x==x+1&&p.y==y-1))
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
    int n;cin>>n;
    node point[n+1];
    for(int i=1;i<=n;i++)
    {
        cin>>point[i].x>>point[i].y;
    }
    for(int i=1;i<=n;i++)
    {
        int x=point[i].x;
        int y=point[i].y;
        for(int j=1;j<=n;j++)
        {
            if(Jude(point[j], x, y))
            {
                point[i].flag+=1;
            }
            if(GetSum(point[j], x, y))
            {
                point[i].grade+=1;
            }
        }
    }
    int sum[6];
    for(int i=0;i<5;i++)
    {
        sum[i]=0;
    }
    for(int i=1;i<=n;i++)
    {
        if(point[i].flag==4)
        {
            sum[point[i].grade]++;//直接用point[i].grade作为分数
        }
    }
    for(int i=0;i<5;i++)
    {
        cout<<sum[i]<<endl;
    }
    return 0;
}
//2
//0 0
//-100000 10

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值