C++过java就MLE,求助
  • 板块P1130 红牌
  • 楼主devhspro
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/8 20:56
  • 上次更新2023/10/27 00:06:18
查看原帖
C++过java就MLE,求助
829223
devhspro楼主2022/12/8 20:56

C++:

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int n, m;
int f[2005][2005], day[2005][2005];
int main(){
    scanf("%d%d", &n, &m);
    for(int i = 1; i <= m; i++) {
		  for(int j =1; j <= n; j++) {
			  scanf("%d", &f[i][j]);
		  }
	  }
	  for(int j = 1; j <= n; j++) {
		  for(int i =1; i <= m; i++) {
			  if(i == 1){
				  day[i][j] = min(f[i][j]+day[i][j-1],f[i][j]+day[m][j-1]);
			  }else {
				  day[i][j] = min(f[i][j]+day[i][j-1], f[i][j]+day[i-1][j-1]);
			  }
			  
		  }
	  }
      int min_ = day[1][n];
	  for(int i = 2; i <= m; i++) {
		  if(day[i][n]<min_) {
			  min_ = day[i][n];
		  }
	  }
	  printf("%d",min_);
}

java:

import java.lang.Math;
import java.util.Scanner;
public class Main{
	static int n, m;
	static long[][] f = new long[2005][2005];
	static long[][] day = new long[2005][2005];
  public static void main(String[] args){
	  Scanner sc = new Scanner(System.in);
	  n = sc.nextInt();
	  m = sc.nextInt();
	  for(int i = 1; i <= m; i++) {
		  for(int j =1; j <= n; j++) {
			  f[i][j]=sc.nextInt();
		  }
	  }
	  for(int j = 1; j <= n; j++) {
		  for(int i =1; i <= m; i++) {
			  if(i == 1){
				  day[i][j] = Math.min(f[i][j]+day[i][j-1],f[i][j]+day[m][j-1]);
			  }else {
				  day[i][j] = Math.min(f[i][j]+day[i][j-1], f[i][j]+day[i-1][j-1]);
			  }
			  
		  }
	  }
	  long min_ = day[1][n];
	  for(int i = 2; i <= m; i++) {
		  if(day[i][n]<min_) {
			  min_ = day[i][n];
		  }
	  }
	  System.out.print(min_);
  }
}

2022/12/8 20:56
加载中...