码迷,mamicode.com
首页 > 其他好文 > 详细

题解【CF1271C Shawarma Tent】

时间:2019-12-16 13:06:56      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:mes   统计   family   学校   font   节点   color   div   而且   

通过分析样例可以发现,离学校越近的地点经过的路线也会越多,因此我们只要考虑学校周围的八个点即可。而且可以发现,对于一个点,路线会经过这个点的节点是确定的。因此在输入的时候可以统计学校周围八个节点被经过的次数,然后找最大的一个即可。注意判断边界。

#include<iostream>
#include<cstdio>
using namespace std;
int n,sx,sy,ans=-1,ansx,ansy;
int dx[8]={-1,0,1,1,1,0,-1,-1},dy[8]={-1,-1,-1,0,1,1,1,0};
int cnt[8];//左上,上,右上,右,右下,下,左下,左 
void check(int x,int y)
{
    cnt[0]+=(x<=sx-1 && y<=sy-1);
    cnt[1]+=(y<=sy-1);
    cnt[2]+=(x>=sx+1 && y<=sy-1);
    cnt[3]+=(x>=sx+1);
    cnt[4]+=(x>=sx+1 && y>=sy+1);
    cnt[5]+=(y>=sy+1);
    cnt[6]+=(x<=sx-1 && y>=sy+1);
    cnt[7]+=(x<=sx-1);
}//统计
int main()
{
    scanf("%d%d%d",&n,&sx,&sy);
    for(int i=1,x,y;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        check(x,y);
    }
    for(int i=0,nx=sx+dx[i],ny=sy+dy[i];i<8;i++,nx=sx+dx[i],ny=sy+dy[i])
        if(nx>=0 && nx<=1e9 && ny>=0 && ny<=1e9 && cnt[i]>ans)
            ans=cnt[i],ansx=nx,ansy=ny;
    printf("%d\n%d %d",ans,ansx,ansy);
    return 0;
}

题解【CF1271C Shawarma Tent】

标签:mes   统计   family   学校   font   节点   color   div   而且   

原文地址:https://www.cnblogs.com/TEoS/p/12048490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!