5415. 仓库规划(枚举)
https://www.acwing.com/problem/content/5418/
我的思路
第一感觉:数据不知咋存储,用多维数组?
用一维数组,下标0默认0
两个问题:
输入:一次性用一维数组输入
枚举:第一层循环枚举每个仓库输出答案;第二层循环枚举其他仓库找上级,第三层循环进行逐个仓库的编码比较,这里确定编码位置是考验的,需要自己思考找规律,最终得出(i-1)*m+1+k,就找编号跟m的关系就行;因为最终的上级是每一个数都要大于它下级的,所以这里如果枚举到自己与其他仓库的关系是大于等于,就可以退出了
我的代码
这么久来暴力枚举第一次accept
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt(),m=scanner.nextInt();
int N=(int) (1e4+5);
int[] a=new int[N];
a[0]=0;
for(int i=1;i<=n*m;i++) {//一次性输入
a[i]=scanner.nextInt();
}
for(int i=1;i<=n;i++) {
int j;
for(j=1;j<=n;j++) {
if(j!=i) {
int k;
for(k=0;k<m;k++) {
int s1=a[(i-1)*m+1+k];//找编码
int s2=a[(j-1)*m+1+k];
if(s1>=s2) break;//检查条件
}
if(k==m) {//找到上级了
System.out.println(j);
break;
}
}
}
if(j>n) System.out.println(0);//找不到上级
}
scanner.close();
}
}