1 条题解
-
0
C++ :
#include <iostream> #include <cmath> #include <cstring> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; #define maxn 1010 int dp[2][maxn]; int now; int main(){ int T; scanf("%d",&T); while(T--){ int n,m,x; scanf("%d%d%d",&n,&m,&x); now=0; memset(dp[0],0,sizeof dp[0]); dp[0][x]=1; for(int i=0;i<m;i++){ scanf("%d",&x); now^=1;memset(dp[now],0,sizeof dp[now]); for(int j=0;j<n;j++){ if(dp[now^1][j]){ if(j+x<n) dp[now][j+x]=1; if(j-x>=0) dp[now][j-x]=1; } } } int ans=-1; for(int i=n-1;i>=0;i--){ if(dp[now][i]){ ans=i;break; } } printf("%d\n",ans); } return 0; }
- 1
信息
- ID
- 1200
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者