Acwing算法心得——现代艺术(统计遍历)

大家好,我是晴天学长,先用两个一维数组维护数据,再统计遍历二维数组,需要的小伙伴请自取哦!


1 )现代艺术


2) .算法思路

现代艺术
1.两个数组维护行和列
2.遍历数组,进行增加
3.统计金的数目


3).代码示例

import java.io.IOException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int k = scanner.nextInt();
        long ans = 0;
        int[][] N = new int [n+10][m+10];
        //存行
        int [] a = new int[n+1];
        //存列
        int [] b = new int[m+1];
        for (int i = 0; i < k ; i++) {
            String line = scanner.next();
            int d = scanner.nextInt();
            if(line.equals("R")){
                a[d]++;
            }
            else {
                b[d]++;
            }
        }
        for (int i = 1; i < n+1; i++) {
            for (int j = 1; j < m+1; j++) {
                int temp = a[i]+b[j];
                if (temp % 2 != 0){
                    ans++;
                }
            }
        }
        System.out.print(ans);
    }
}


4).总结

首先,通过Scanner类从标准输入读取三个整数n、m和k,分别表示矩阵的行数、列数和现代艺术作品的数量。
创建一个二维数组N,大小为(n+10)×(m+10),用于存储每个位置的状态。
创建两个一维数组a和b,分别表示每行和每列上现代艺术作品的数量。
使用一个循环读取k行输入,每行包含一个字符和一个整数,表示现代艺术作品的位置。如果字符为’R’,则在相应行上作品数量加1;如果字符为’C’,则在相应列上作品数量加1。
使用两层循环遍历矩阵的所有位置,计算每个位置上现代艺术作品的总数量。如果总数量为奇数,则将ans加1。最后,输出ans的值,即表示满足条件的现代艺术作品的总数量。


原题链接:

你可能感兴趣的:(算法,算法)