| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求助!!!!一样的代码却总是RE????抓狂了!!!这是我的Java代码:(RE无数次!!!)
import java.util.Scanner;
public class Main{
static int[] pos = new int[310];
static int[][] sum = new int[310][310];
static int[][] dp = new int[310][31];
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int V = cin.nextInt();
int P = cin.nextInt();
for (int i = 1; i <= V; i++) {
pos[i] = cin.nextInt();
}
for (int i = 1; i < V; i++) {
for (int j = i + 1; j <= V; j++) {
sum[i][j] = sum[i][j - 1] + pos[j] - pos[(i + j) / 2];
}
}
for (int i = 1; i <= V; ++i) {
dp[i][i] = 0;
dp[i][1] = sum[1][i];
}
for (int j = 2; j <= P; ++j) {
for (int i = j + 1; i <= V; ++i) {
dp[i][j] = 9999999;
for (int k = j - 1; k < i; ++k)
dp[i][j] = Math.min(dp[i][j], dp[k][j - 1] + sum[k + 1][i]);
}
}
System.out.printf("%d\n", dp[V][P]);
}
}
这是已经AC了的C++代码,有什么区别吗?
#include <cstdio>
#include <cstring>
using namespace std;
#define min(a,b) (a) < (b) ? (a) : (b)
int dp[310][31];
int sum[310][310];
int V,P;
int pos[310];
int main(){
scanf("%d%d",&V,&P);
for(int i = 1; i <= V; ++i)scanf("%d",&pos[i]);
for(int i=1 ; i< V ; i++){
for(int j=i+1 ; j<= V ; j++){
sum[i][j] = sum[i][j-1]+ pos[j] - pos[(i+j) / 2];
}
}
for(int i = 1; i <= V; ++i){
dp[i][i] = 0;
dp[i][1] = sum[1][i];
}
for(int j = 2; j <= P; ++j){
for(int i = j+1; i <= V; ++i){
dp[i][j] = 9999999;
for(int k = j-1; k < i; ++k)
dp[i][j] = min(dp[i][j],dp[k][j-1]+sum[k+1][i]);
}
}
printf("%d\n",dp[V][P]);
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator