用vs2012做網(wǎng)站首頁關(guān)鍵詞分布中對seo有危害的
題目鏈接:棋盤
這道題真的是非常典型的二維差分問題了(在我個人看來),題目中的0和1,我們直接讓差分數(shù)組++,偶數(shù)就是0,奇數(shù)就是1.初始化是0,是白子(偶數(shù)),然后根據(jù)子矩陣范圍開始進行差分數(shù)組的計算
import java.util.ArrayDeque; import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改public class Main {static int[][] a=new int[2100][2100];//一開始全是0static int[][] d=new int[2100][2100];//差分數(shù)組public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt(),m=scanner.nextInt();while(m--!=0){int x1=scanner.nextInt();int y1=scanner.nextInt();int x2=scanner.nextInt();int y2=scanner.nextInt();cha(x1,y1,x2,y2);}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){//計算a數(shù)組//反過來d[i][j]=a[i][j]-a[i][j-1]-a[i-1][j]+a[i-1][j-1]a[i][j]=d[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1];}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i][j]%2==0){System.out.print(0);}else{System.out.print(1);}}System.out.println();}}public static void cha(int x1,int y1,int x2,int y2){//這四個感覺就是模板了,不理解可以背下來,建議理解d[x1][y1]++;d[x2+1][y2+1]++;d[x1][y2+1]--;d[x2+1][y1]--;} }