在这里插入代码片#include <iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int a[15],v[15],dp[100005],vis[100005];
int main()
{
int tol;
while(scanf("%d",&tol)!=EOF){
memset(dp,0,sizeof(dp));
memset(vis,0,sizeof(vis));
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i]>>v[i];
dp[0]=1;
int ans=0;
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
for(int j=v[i];j<=tol;j++){
if(!dp[j]&&dp[j-v[i]]&&vis[j-v[i]]<a[i]){
dp[j]=1;
vis[j]=vis[j-v[i]]+1;
if(ans<j)ans=j;
}
}
}
cout<<ans<<endl;
}
return 0;
}
dp
最新推荐文章于 2024-06-17 00:06:23 发布