各位大佬能不能指出一下我这代码有什么问题,WA0
  • 板块P8858 折线
  • 楼主qjjt
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/23 13:15
  • 上次更新2024/3/23 15:20:04
查看原帖
各位大佬能不能指出一下我这代码有什么问题,WA0
1128463
qjjt楼主2024/3/23 13:15
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m,c[N],ans[N];
struct star{
	int x,y;
	bool operator<(const star&s)const{
		if(y==s.y)return x>s.x;
		return y<s.y;}
	}st[N];
bool cmp(star a,star b){return a<b;}
int read(){
	int xxx=0,www=1;char ch=getchar();
	while(ch>'9'||ch<'0'){if(ch=='-')www=-1;ch=getchar();}
	while(ch>='0'&&ch<='9')xxx=xxx*10+ch-'0',ch=getchar();
	return xxx*www;}
int lowbit(int x){return x&(-x);}
void update(int x,int y){for(;x<=n;x+=lowbit(x))c[x]+=y;}
int sum(int x){
	int ans=0;
	for(;x;x-=lowbit(x))ans+=c[x];
	return ans;}
int run(){
	memset(c,0,sizeof c);
	sort(st+1,st+n+1,cmp);
	if(st[n/2].y!=st[n/2+1].y)return 2;
	for(int i=1;i<=n;i++){
		int u=st[i].x;
		update(u,1);
		int v=sum(n)-sum(u-1);
		if(v*2==n)return 3;}
	return 4;
	}
int main(){
	int t=read();
	while(t--){
		n=read();
	    for(int i=1;i<=n;i++)st[i]={read(),read()};
		int a=run();if(a==2){printf("2\n");continue;}
		for(int i=1;i<=n;i++)swap(st[i].x,st[i].y);
		printf("%d\n",min(a,run()));}
    return 0;
}
2024/3/23 13:15
加载中...