C++14全WA,C++17AC
查看原帖
C++14全WA,C++17AC
180242
kradcigam楼主2021/7/14 11:03

C++14全WA提交

C++17AC提交

很奇怪

我的代码:

#include<bits/stdc++.h>
#define LL long long
#define mp make_pair
#define SZ(x) ((int)x.size()-1)
#define ms(a,b) memset(a,b,sizeof a)
#define F(i,a,b) for(int i=(a);i<=(b);++i)
#define DF(i,a,b) for(int i=(a);i>=(b);--i)
using namespace std;
inline int read(){char ch=getchar(); int w=1,c=0;
	for(;!isdigit(ch);ch=getchar()) if (ch=='-') w=-1;
	for(;isdigit(ch);ch=getchar()) c=(c<<1)+(c<<3)+(ch^48);
	return w*c;
}
const int N=2e5+10;
struct Duck{
	int x,y,id;
	bool operator<(const Duck&t)const{
		if(x==t.x)return y<t.y;
		return x<t.x;
	}
}a[N<<1];
int tot,h[N],sy[N],toty,f[N],maxn;
vector<pair<int,int> >v[N];
struct BIT{
	int t[N];
	void add(int x,int y){for(;x<=toty;x+=x&-x)t[x]=max(t[x],y);}
	int qry(int x){int ans=0;for(;x;x-=x&-x)ans=max(ans,t[x]);return ans;}
}T;
int main(){
	int n=read(),p=read();
	F(i,1,p){
		a[tot].x=read();a[tot].y=read();a[tot++].id=tot;
		a[tot].x=read();a[tot].y=read();a[tot++].id=tot;
	}sort(a,a+tot);
	ms(h,-1);
	F(i,0,tot-1){
		sy[i]=a[i].y;
		if(h[a[i].id^1]!=-1)v[i].emplace_back(h[a[i].id^1],a[i].x-a[h[a[i].id^1]].x+a[i].y-a[h[a[i].id^1]].y);
		else h[a[i].id]=i;
	}sort(sy,sy+tot);
	toty=unique(sy,sy+tot)-sy;
	F(i,0,tot-1)a[i].y=lower_bound(sy,sy+toty,a[i].y)-sy+1;
	F(i,0,tot-1){
		f[i]=T.qry(a[i].y);
		for(pair<int,int>j:v[i])
			f[i]=max(f[i],f[j.first]+j.second);
		T.add(a[i].y,f[i]);
		maxn=max(maxn,f[i]);
	}cout<<n+n-maxn;
	return 0;
}
2021/7/14 11:03
加载中...