暴力老哥AC了!!!数据太水了
  • 板块P8858 折线
  • 楼主TangBin0524
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/23 21:28
  • 上次更新2023/10/27 01:46:38
查看原帖
暴力老哥AC了!!!数据太水了
412188
TangBin0524楼主2022/11/23 21:28

RT, 我这份代码AC了。期望得分是80分,结果数据太弱满分了。。。

#include<bits/stdc++.h>
using namespace std;
#define fr(i,a,b) for(ll i=a;i<=b;i++)
#define dr(i,a,b) for(ll i=b;i>=a;i--)
#define gc(c) c=getchar()
#define pc(c) putchar(c)
#define ll long long
inline ll read()
{
    ll x=0;char c;bool flag=true;gc(c);
    while(c>'9'||c<'0'){if(c=='-')flag=false;gc(c);}
    while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),gc(c);
    return flag? x: -x;
}
inline void pr(ll x)
{
    if(x<0)x=-x,pc('-');
    if(x>9)pr(x/10);
    pc(x%10+48);
}
const int N=1e5+5;
struct point
{
    int x,y;
}p[N];
int n;
namespace solve1
{
    int b1[N],b2[N];
    bool solve()
    {
        fr(i,1,n)b1[i]=0,b2[i]=0;
        fr(i,1,n)b1[p[i].x]++,b2[p[i].y]++;
        fr(i,1,n)b1[i]+=b1[i-1],b2[i]+=b2[i-1];
        fr(i,1,n)
        {
            if(((b1[i]<<1) == n)||((b2[i]<<1) == n))
                return true;
        }
        return false;
    }
}
namespace solve2
{
    int sum[55][55];
    int summ(int xx1,int yy1,int xx2,int yy2)
    {
        return sum[xx2][yy2]+sum[xx1-1][yy1-1]-sum[xx1-1][yy2]-sum[xx2][yy1-1];
    }
    bool solve()
    {
        if(n>50)return true;//n大于50时不是2直接输出3
        fr(i,1,n)fr(j,1,n)sum[i][j]=0;
        fr(i,1,n)sum[p[i].x][p[i].y]++;
        fr(i,1,n){
            fr(j,1,n)
                sum[i][j]+=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];//,pr(sum[i][j]),pc(' ');
        //    pc(10);
        }
        fr(i,1,n)
        {
            fr(j,1,n)
            {
                if(summ(i,1,n,j)==(n>>1) || summ(1,j,i,n)==(n>>1))return true;
            }
        }
        return false;
    }
}
inline void solve()
{
    if(solve1::solve())puts("2");
    else if(solve2::solve())puts("3");
    else puts("4");
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("a.in","r",stdin);
    freopen("a.out","w",stdout);
#endif
    int T=read();
    while(T--)
    {
        n=read();
        fr(i,1,n)
            p[i].x=read(),p[i].y=read();
        solve();
    }
    return 0;
}
2022/11/23 21:28
加载中...