题目:
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
long[][] big = new long[N][M];//数组
long sum=0;//每天消费总额
for(int i=0;i<N;i++) {//矩阵A
for(int j=0;j<M;j++) {
big[i][j]=sc.nextInt();
}
}
for(int i=0;i<N;i++) {//取(服务员数和顾客数的最小值)
for(int j=0;j<M;j++) {
big[i][j]=Math.min(big[i][j],sc.nextInt());
}
}
for(int i=0;i<N;i++) {//取每个饭店的最大消费额
long max=big[i][0]*sc.nextLong();
long t;
for(int j=1;j<M;j++) {
t=big[i][j]*sc.nextLong();
if(max<t) max=t;
}
sum+=max;
}
System.out.println(sum);
}//0 <= Cij <= 10^9,得用long类型表示,
//与它相关的数组big,max,t,sum等都要用long
}
这道题要注意0 <= Cij <= 10^9,得用long类型表示,与它相关的数组big,max,t,sum等都要用long类型表示,如果用int只能得40%的分数。
评测结果截图: