2 条题解
-
0
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 50, M = 2600; LL f[N][M]; int main() { int n; scanf("%d", &n); int sum = n * (n + 1) / 2; memset(f, 0, sizeof(f)); f[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= sum; j++) { f[i][j] = f[i - 1][j]; if (j >= i) { f[i][j] += f[i - 1][j - i]; } } } LL ans = f[n][sum / 2] / 2; printf("%lld\n", (sum & 1) ? 0 : ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=50, M=2600; LL f[N][M]; int main(){ int n; scanf("%d", &n); int sum=n*(n+1)/2; memset(f, 0, sizeof(f)); f[0][0]=1; for(int i=1; i<=n; i++){ for(int j=0; j<=sum; j++){ f[i][j]=f[i-1][j]; if(j>=i) f[i][j]+=f[i-1][j-i]; } } LL ans=f[n][sum/2]/2; printf("%lld\n", (sum&1)? 0: ans); return 0; }
- 1
信息
- ID
- 1008
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 21
- 已通过
- 12
- 上传者