1 条题解
-
0
C :
#include <stdio.h> #include <string.h> int main() { //freopen("inin.txt","r",stdin); //freopen("out.out","w",stdout); int n; int a,b,i,j; int arr[20][20]; while(scanf("%d",&n)!=EOF) { while(n--) { scanf("%d%d",&a,&b); for(i=0;i<=a;i++) { arr[i][0]=1; arr[i][1]=1; } for(i=0;i<=b;i++) { arr[0][i]=1; arr[1][i]=1; } for(i=2;i<=a;i++) for(j=2;j<=b;j++) if(i>=j) arr[i][j]=arr[i][j-1]+arr[i-j][j]; else arr[i][j]=arr[i][i]; printf("%d\n",arr[a][b]); memset(arr,0,sizeof(arr)); } } return 0; } int f(int m, int n) { if( m == 0 || n == 1) return 1; if(m<n) return f(m ,m); return f(m,n-1) + f(m-n , n); }
C++ :
#include <bits/stdc++.h> using namespace std; int main() { //freopen("F:\\TestFiles\\test.in","r",stdin); //freopen("F:\\TestFiles\\test2.out","w",stdout); int d[105][105]; memset(d,0,sizeof(d)); for(int j=0;j<=100;j++){ d[0][j]=1; d[1][j]=1; } for (int i=2;i<=100;i++){ for (int j=1;j<=100;j++){ if (j>i) d[i][j]=d[i][i]; else d[i][j]=d[i][j-1]+d[i-j][j]; } } int t; while(~scanf("%d",&t)){ while(t--){ int n,m; scanf("%d%d",&n,&m); printf("%d\n",d[n][m]); } } return 0; }
- 1
信息
- ID
- 2842
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者