1 条题解
-
0
C :
#include "stdio.h" int n,m; int a[11][16],b[11],f[11][16]; int main() { int i,j,k; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) scanf("%d",&a[i][j]); } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { f[i][j]=f[i-1][j]; for(k=1;k<=j;k++) if(f[i][j]<f[i-1][j-k]+a[i][k]) f[i][j]=f[i-1][j-k]+a[i][k]; } } printf("%d\n",f[n][m]); for(i=n;i>=1;i--) { for(j=m;j>=0;j--) if(f[i][m]==f[i-1][m-j]+a[i][j]) { b[i]=j; m-=j; break; } } for(i=1;i<=n;i++) printf("%d %d\n",i,b[i]); return 0; }
C++ :
#include <iostream> #include <cstdio> #include <cstring> #include <climits> using namespace std; int F[11][16]; int V[11][16]; int Ans=0,N,M; void init(void); void Work(void); int Prim(int,int); int main() { init(); Work(); return 0; } void init(void) { memset(F,0,sizeof(F)); memset(V,0,sizeof(V)); int i,j; scanf("%d %d",&N,&M); for(i=1;i<=N;i++) { for(j=1;j<=M;j++) { scanf("%d",&V[i][j]); } } } void Work(void) { int i,j,k; for(i=1;i<=N;i++) { for(j=1;j<=M;j++) { Ans=0; for(k=0;k<=j;k++) { if(F[i-1][k]+V[i][j-k]>Ans) { Ans=F[i-1][k]+V[i][j-k]; } } F[i][j]=Ans; } } printf("%d\n",F[N][M]); Prim(N,M); } int Prim(int x,int y) { int i,j; if(x==0) return 0; for(i=0;i<=y;i++) { if(Ans==F[x-1][i]+V[x][y-i]) { Ans=F[x-1][i]; Prim(x-1,i); printf("%d %d\n",x,y-i); break; } } }
Java :
import java.util.*; public class Main{ static int n,m; static int[] f = new int[20]; static int[][] w = new int[20][20]; static int[][] ans = new int[20][20]; public static void main(String args[]) { Scanner sc = new Scanner(System.in); int i,j,k; n = sc.nextInt(); m = sc.nextInt(); for (i=1;i<=n;++i) { for (j=1;j<=m;++j) { w[i][j] = sc.nextInt(); } } for (i=n;i>0;--i) { for (j=m;j>=0;--j) { for (k=1;k<=j;++k) { if (f[j-k]+w[i][k]>f[j]) { f[j]=f[j-k]+w[i][k]; ans[i][j]=k; //保存f(i,j)取最大时k的值 } } } } System.out.print(f[m]); for (i=1,j=m;i<=n;++i) { System.out.println(); System.out.print(i+" "+ans[i][j]); j-=ans[i][j]; //算出最优方案第i+1~n公司共使用了几台机器,也就是f(i,j)是由f(i+1,?)转移过来的 } } }
- 1
信息
- ID
- 805
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者