2 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N=1e4+10, K=2e2+10; long long f[N][K], a[N]; int main() { //freopen("a.in", "r", stdin);freopen("a.out", "w", stdout); int n, k;scanf("%d%d", &n, &k); for(int i=1;i<=n;++i)scanf("%lld", &a[i]); memset(f, -63, sizeof(f)); for(int i=0;i<=n;i++)f[i][0]=0; for(int i=1;i<=n;i++) for(int j=0;j<=k-1;j++) { f[i][(j+a[i])%k] = max(f[i][(j+a[i])%k], f[i-1][(j+a[i])%k]); f[i][(j+a[i])%k] = max(f[i][(j+a[i])%k], f[i-1][j] + a[i]); } printf("%lld\n", f[n][0]); return 0; }奇怪省空间小作伐by hansang:
#include <bits/stdc++.h> using namespace std; const int N=1e4+10, M=210; typedef long long LL; const LL P=1e8; LL a[N], f[2][M]; int main(){ int n, m; scanf("%d%d", &n, &m); for(int i=1; i<=n; i++) scanf("%lld", &a[i]); memset(f, -0x3f, sizeof(f)); int t=0; f[1][0]=0; LL inf=f[0][0]; for(int i=1; i<=n; i++){ for(int j=0; j<m; j++){ int d=(j-a[i]%m+m)%m; f[t][j]=max({f[t^1][j], f[t^1][d]+(d+a[i])/m}); } f[t][a[i]%m]=max(f[t][a[i]%m], a[i]/m); t^=1; } printf("%lld\n", f[t^1][0]*m); return 0; } -
0
#include<bits/stdc++.h> using namespace std; const int N=1e4+10,K=2e2+10; long long f[N][K],a[N]; int main() { //freopen("a.in","r",stdin);freopen("a.out","w",stdout); int n,k;scanf("%d%d",&n,&k); for(int i=1;i<=n;++i)scanf("%lld",&a[i]); memset(f,-63,sizeof(f)); for(int i=0;i<=n;i++)f[i][0]=0; for(int i=1;i<=n;i++) for(int j=0;j<=k-1;j++) { f[i][(j+a[i])%k]=max(f[i][(j+a[i])%k],f[i-1][(j+a[i])%k]); f[i][(j+a[i])%k]=max(f[i][(j+a[i])%k],f[i-1][j]+a[i]); } printf("%lld\n",f[n][0]); return 0; }
奇怪省空间小作伐by hansang:
#include<bits/stdc++.h> using namespace std; const int N=1e4+10, M=210; typedef long long LL; const LL P=1e8; LL a[N], f[2][M]; int main(){ int n, m; scanf("%d%d", &n, &m); for(int i=1; i<=n; i++) scanf("%lld", &a[i]); memset(f, -0x3f, sizeof(f)); int t=0; f[1][0]=0; LL inf=f[0][0]; for(int i=1; i<=n; i++){ for(int j=0; j<m; j++){ int d=(j-a[i]%m+m)%m; f[t][j]=max({f[t^1][j], f[t^1][d]+(d+a[i])/m}); } f[t][a[i]%m]=max(f[t][a[i]%m], a[i]/m); t^=1; } printf("%lld\n", f[t^1][0]*m); return 0; }
- 1
信息
- ID
- 1896
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 165
- 已通过
- 28
- 上传者