遍历矩形的主对角线

swjswjswj / 2024-10-26 / 原文

B. Sakurako and Water

对于上三角遍历的顺序是 我们举例n=3,m=3
(1,1)(2,2)(3,3)
(1,2)(2,3)
(1,3)
所以上三角可以这样遍历

	//上三角
	for(int i=1;i<=n;i++)
	{
		for(int j=1, k=i;k<=n;k++,j++)  ;//to do  
		//j对应每次的横坐标,k对应每次的纵坐标
	}

	//下三角同理
	for(int i=2;i<=n;i++)
	{
		
		for(int j=i,k=1;j<=n;k++,j++) ;
	
	}

或者
利用每对角线的性质,每条对角线上的坐标x-y为固定差值

	for(int i = 0; i < N; i++){
		for(int j = 0; j < N; j++){
			int diff = i - j + (N-1);
			ans[diff] = max(ans[diff], -A[i][j]);//存到对应的组去找最小值
		}
	}