2 条题解
-
0
#pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc++.h> using namespace std; long f[1005][1005],i,j,n,m; long read() { long x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+(ch-'0'); ch=getchar(); } return x*f; } void write(long x) { if(x<0){ putchar('-'); write(-x); return; } if(x>=10)write(x/10); putchar(x%10+'0'); } int main() { n=read(),m=read(); for(i=1;i<=n;i++)f[i][0]=f[i][1]=1; for(i=2;i<=n;i++) for(j=2;j<=m;j++) { f[i][j]=f[i-1][j-1]; if(i>j)f[i][j]+=f[i-j][j]; } write(f[n][m]); return 0; }
-
0
dp
33分的没有判i<=j的情况
66分的抄洛谷第一篇题解
#include <bits/stdc++.h> using namespace std; const int N = 2005; int n, m, x, y, f[N][N]; int main() { cin >> n >> m; for (int i = 1; i <= n; i ++) f[i][1] = f[i][0] = 1; for (int i = 2; i <= n; i ++) for (int j = 2; j <= m; j ++) if (i > j) f[i][j] = f[i - 1][j - 1] + f[i - j][j]; else f[i][j] = f[i - 1][j - 1]; cout << f[n][m] << '\n'; return 0; }
- 1
信息
- ID
- 148
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 61
- 已通过
- 16
- 上传者