1 条题解
-
0
C :
#include<stdio.h> #define max(a,b) (a>b?a:b) int n; long long f[100000]; int main() { f[0]=1; for(int i=1;i<=3;i++) for(int j=i;j<=32768;j++) f[j]+=f[j-i]; scanf("%d",&n); printf("%lld",f[n]); return 0; }
C++ :
#include <bits/stdc++.h> using namespace std; int n,i,j,dp[4][40000]; int main() { int n; cin>>n; for(int i = 1;i <= 3;i++){ dp[i][0] = 1;//初始化 //j从i开始循环,防止背包容量不够 for(int j = 1;j <= n;j++){ if(j < i){ dp[i][j] = dp[i - 1][j]; } else{ dp[i][j] = dp[i - 1][j] + dp[i][j - i]; } } } cout<<dp[3][n]; return 0; }
- 1
信息
- ID
- 2755
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者