蒟蒻求助
查看原帖
蒟蒻求助
214172
wpy233楼主2022/7/26 16:22

RT.在写这道题的时候我 askask 函数是这样写的:

int jkl(int p1,int p2)
{
	int ans1=0,ans2=0,ans3=0,ans4=0;
   int i=p1,j=p2;
	for(;i;i-=i&-i)
		for(;j;j-=j&-j)
		{
			ans1+=t1[i][j];
			ans2+=t2[i][j];
			ans3+=t3[i][j];
			ans4+=t4[i][j];
		}
	return ans1*p1*p2-ans2*p2-ans3*p1+ans4;
}

后来发现过不了样例。参照第二篇题解将 iijj 放到循环里面定义后就过了:

int jkl(int p1,int p2)
{
	int ans1=0,ans2=0,ans3=0,ans4=0;
	for(int i=p1;i;i-=i&-i)
		for(int j=p2;j;j-=j&-j)
		{
			ans1+=t1[i][j];
			ans2+=t2[i][j];
			ans3+=t3[i][j];
			ans4+=t4[i][j];
		}
	return ans1*p1*p2-ans2*p2-ans3*p1+ans4;
}

请问这是为什么QAQ

2022/7/26 16:22
加载中...