L1-112 现代战争 - java
L1-112 现代战争
语言 | 时间限制 | 内存限制 | 代码长度限制 | 栈限制 |
---|---|---|---|---|
Java (javac) | 2500 ms | 512 MB | 16KB | 8192 KB |
Python (python3) | 1000 ms | 256 MB | 16KB | 8192 KB |
其他编译器 | 1000 ms | 64 MB | 16KB | 8192 KB |
题目描述:
在最新的《命运召唤:现代战争》中,你要扮演 B 国的一名战斗机飞行员,前往轰炸 A 国的高价值建筑。A 国的建筑群可视为一个由 n × m n \times m n×m 个小方格组成的地图,每个小方格中有一幢建筑,并且你已经知道了所有建筑的价值。
作为一名优秀的战斗机飞行员,你打算轰炸 k k k 幢建筑,轰炸方式是:你选择当前所有还存在的建筑里最高价值的一幢投下炸弹,这个炸弹会将这个建筑所在的一整行和一整列都炸平。随后系统将彻底抹除被炸平的建筑,将剩下的地块合并成 ( n − 1 ) × ( m − 1 ) (n−1) \times (m−1) (n−1)×(m−1) 的地图。
例如对原始地图
1 2 3
7 9 8
6 5 4
进行一次轰炸后,更新后的地图为:
1 3
6 4
请你编写程序,输出你轰炸了 k k k 幢建筑后的地图。
注:游戏纯属虚构,如有雷同纯属巧合
输入格式:
输入第一行给出三个正整数 n 、 m ( 2 ≤ n , m ≤ 1000 ) n、m(2 \le n, m \le 1000) n、m(2≤n,m≤1000)和 k ( < m i n { n , m } ) k(< min\{n,m\}) k(<min{n,m}),依次对应地图中建筑的行数、列数,以及轰炸步数。随后 n n n 行,每行 m m m 个整数,为地图中对应建筑的价值。
题目保证所有元素在 [ − 2 30 , 2 30 ] [−2^{30} ,2^{30}] [−230,230] 区间内,且互不相等。同行数字间以空格分隔。
输出格式:
输出轰炸 k k k 幢建筑后的地图。同行数字间以 1 1 1 个空格分隔,行首尾不得有多余空格。
输入样例:
4 5 2
3 8 6 1 10
28 9 21 37 5
4 11 7 25 18
15 23 2 17 14
输出样例:
3 6 10
4 7 18
丢下k个炸弹,每个炸弹都会向所有当前所有还存在的建筑里最高价值的一幢投下炸弹,将这个建筑所在的一整行和一整列都炸平。
emmmmmmm
暴力模拟即可
import java.io.*;
import java.math.*;
import java.util.*;public class Main
{static int N = (int) 1e3;static int shu[][] = new int[N + 10][N + 10];static int n, m;static int x, y;static void getMax(){int mx = 0;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (shu[i][j] > mx){mx = shu[i][j];x = i;y = j;}}}}static void removeMax(){// 从第x+1行开始,每行的内容都往上移动for (int i = x; i <= n; i ++){for (int j = 1; j <= m; j ++)shu[i][j] = shu[i + 1][j];}// 从y+1列开始,每列的内容都往左移动for (int j = y; j <= m; j ++){for (int i = 1; i <= n; i ++){shu[i][j] = shu[i][j + 1];}}n --;m --;}public static void main(String[] args){n = sc.nextInt();m = sc.nextInt();int k = sc.nextInt();for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++)shu[i][j] = sc.nextInt();}while (k -- > 0){getMax();removeMax();}for (int i = 1; i <= n; i ++){for (int j = 1; j <= m; j ++){if (j != 1) out.print(" ");out.print(shu[i][j]);}out.println();}out.flush();out.close();}static Scanner sc = new Scanner(System.in);static PrintWriter out = new PrintWriter(System.out);
}
如果有说错的 或者 不懂的 尽管提 嘻嘻
一起进步!!!
闪现