> 文章列表 > 美团4.8笔试题,换座位

美团4.8笔试题,换座位

美团4.8笔试题,换座位

换座位
时间限制: 3000MS
内存限制: 589824KB
题目描述:
小团班级的座位排成了 n 行(行从 1 到 n 编号),共有 m 个大列(大列从 1 到 m 编号),每个大列中有 a 个小列(小列从 1 到 a 编号),大列与大列之间有一个过道。小团的班级每周会换一次座位,首先所有同学都换到后一行,最后一行的同学换到第一行,然后所有同学都移动到自己右边的那个大列的相同小列上,在最右大列的同学移动到最左大列。换句话说,对于坐在第 i<n 行的同学,新位置在第 i+1 行,如果 i=n,那么新位置在第一行;对于坐在第 j<m 大列的同学,新位置在第 j+1 大列,如果 j=m,那么新位置在第一大列;对于坐在第 k 小列的同学,新位置仍然在第 k 小列。

小团的学校最近换了一批学生桌椅。这批学生桌椅的优点在于可以调节桌子高度,一些同学调整了桌子高度,但是另一些没有。这样换座就变得麻烦了起来,如果一位调整了桌子高度的同学换到了未调整桌子高度同学的位置,他就会调整新位置的桌子到他想要的高度,而一位没有调整桌子高度的同学换到了调整过桌子高度同学的位置,他也会调整新位置的桌子高度,使其恢复原高度。

现在小团的班级要进行换座位了,给出换座位前班级所有桌子的情况,小团想知道,换一次位置后,有多少同学需要重新调整桌子高度。

输入描述

输入第一行包含三个数 n, m, a,意义如题目所示。
接下来 n 行,每行 m 个长度为 a 的 01 字符串,表示目前小团班上的桌子情况。其中 0 表示这个位置未调节桌子高度,1表示已调节桌子高度。
对于全部数据,1 ≤ n, m ≤ 200, n × m ≥ 2, 1 ≤ a ≤ 5。

输出描述

输出一行一个整数,表示换座位后有多少同学需要重新调整桌子高度。

样例输入

3 3 2
01 10 00
10 00 11
01 00 00

样例输出

8

样例输入

3 3 3
011 100 000
100 000 110
010 000 000

样例输出

10

代码:

import java.util.Scanner;/*** @ClassName: test4* @Description: TODO* @Author: ChiKin Lau @ SUSE* @Date: 2023/4/9 13:55* @version: 1.0**/
public class test4 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();int a = in.nextInt();String[][] s = new String[n][m];for (int i=0; i<n; i++){for (int j=0; j<m; j++){s[i][j] = in.next();}}//        System.out.println(n);
//        System.out.println(m);
//        System.out.println(a);int sum = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {
//                System.out.println(s[i][j]);for (int k = 0; k < a; k++) {//重点就是这里的取余操作if (s[i][j].charAt(k) != s[(i+1)%n][(j+1)%n].charAt(k)){sum = sum+1;}}}}System.out.println(sum);}
}