1 solutions
-
0
C :
#include<stdio.h> #include<math.h> main() { int i,j,k; int n,m; int a[11],f[101]; for(i=1;i<=10;i++) scanf("%d",&a[i]); scanf("%d",&n); for(i=1;i<=n;i++) f[i]=0xfffffff; f[0]=0; for(i=1;i<=n;i++) for(j=i-1;j>=0&&j>=i-10;j--) if(f[i]>f[j]+a[i-j]) f[i]=f[j]+a[i-j]; printf("%d\n",f[n]); return 0; }
C++ :
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int f[1001]; int a[1001],b[1001]; int minx(int x,int y) { if(x<y) return x; else return y; } int main() { int m,t; int i,j; memset(f,63,sizeof(f)); f[0]=0; for(i=1;i<=10;i++) { a[i]=i;scanf("%d",&b[i]); } scanf("%d",&t); for(i=1;i<=10;i++) { for(j=1;j<=t;j++) { if(j>=a[i]) { f[j]=minx(f[j],f[j-a[i]]+b[i]); } } } printf("%d\n",f[t]); return 0; }
- 1
Information
- ID
- 10014
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By