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 |
超时代码,求指教#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<string> using namespace std; int a[20],num[20]; int dp[100005]; int main() { int c,n,i,j,k; while(scanf("%d%d",&c,&n)==2) { memset(a,0,sizeof(a)); memset(num,0,sizeof(num)); memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) scanf("%d%d",&num[i],&a[i]); for(i=1;i<=n;i++) for(j=a[i];j<=c;j++) for(k=1;k<=num[i];k++) { if(j>=k*a[i]) { dp[j]=max(dp[j],dp[j-k*a[i]]+k*a[i]); } else break; } printf("%d\n",dp[c]); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator