Hack
查看原帖
Hack
247540
tongyf楼主2020/12/21 09:41

被Hack的题解

cdqcdqcdqcdq的话在排序的时候应该排序彻底。

但是这篇题解中的cmpcmp是这么写的:

bool cmp1(QAQ a,QAQ b){
	return a.x==b.x?(a.y==b.y?(a.z==b.z?a.w<b.w:a.z<b.z):a.y<b.y):a.x<b.x;
}
bool cmp2(QAQ a,QAQ b){
	return a.y==b.y?(a.z==b.z?a.w<b.w:a.z<b.z):a.y<b.y;
}
bool cmp3(QAQ a,QAQ b){
	return a.z==b.z?a.w<b.w:a.z<b.z;
}

正确的应该类似这么写:

bool cmp(node a,node b){
    if(a.x!=b.x) return a.x<b.x;
    if(a.y!=b.y) return a.y<b.y;
    if(a.z!=b.z) return a.z<b.z;
    return a.w<b.w;
}
bool cmp1(node a,node b){
    if(a.y!=b.y) return a.y<b.y;
    if(a.z!=b.z) return a.z<b.z;
    if(a.w!=b.w) return a.w<b.w;
    return a.x<b.x;
}
bool cmp2(node a,node b){
    if(a.z!=b.z) return a.z<b.z;
    if(a.w!=b.w) return a.w<b.w;
    if(a.x!=b.x) return a.x<b.x;
    return a.y<b.y;
}

这个问题是我在做和这道题很类似的P4849的时候发现的,因为这个调了半年。

自己造了一组hack数据

建议加强数据。

2020/12/21 09:41
加载中...