奇妙的问题:三目运算符比 if 快吗
查看原帖
奇妙的问题:三目运算符比 if 快吗
779970
lunjiahao楼主2024/9/2 21:45

rt,关于在本题使用莫队时用的排序方式中:

1.使用 if: 记录

bool cmp(const dat &a,const dat &b)
{
	if(bel[a.l1]^bel[b.l1]) return a.l1<b.l1;
	if(bel[a.r1]^bel[b.r1])
	{
		if(bel[a.l1]&1) return a.r1<b.r1;
			else return a.r1>b.r1;
	}
	if(bel[a.l2]^bel[b.r2])
	{
		if(bel[a.r1]&1) return a.l2<b.l2;
			else a.l2>b.l2;
	}
	if(bel[a.l2]&1) return a.r2<b.r2;
		else return a.r2>b.r2;
}
  1. 使用三目运算符: 记录
bool cmp(const dat &a,const dat &b)
{
	if(bel[a.l1]^bel[b.l1]) return a.l1<b.l1;
	if(bel[a.r1]^bel[b.r1]) return bel[a.l1]&1?a.r1<b.r1:a.r1>b.r1;
	if(bel[a.l2]^bel[b.r2]) return bel[a.r1]&1?a.l2<b.l2:a.l2>b.l2;
	return bel[a.l2]&1?a.r2<b.r2:a.r2>b.r2;
}

问这是真的会提速吗 (?

2024/9/2 21:45
加载中...