4 条题解

  • 1
    @ 2022-12-6 18:21:14
    #include <cstdio>
    using namespace std;
    
    int f[210][7];
    int n,k,i,j;
    
    int main()
    {
        scanf("%d%d",&n,&k);
        f[0][0]=1;
        for(i=1;i<=n;i++)
            f[i][1]= 1;
        for(i=1;i<=n;i++)
            for(j=1;j<=k;j++)
                if(i>=j)
                    f[i][j]=f[i-j][j]+f[i-1][j-1];
        printf("%d\n",f[n][k]);
        return 0;
    }
    
    
    • 0
      @ 2023-10-21 15:06:53
      using namespace std;
      int f(int x,int y){
      	if(x==0||x<y||y==0) return 0;
      	//当数字为0,或盒子为0,或数字小于盒子数时,放数字的方法为0种(边界) 
      	if(y==1||x==y) return 1;
      	//当盒子数为1,或数字等于盒子数时,放数字的方法为1(边界) 
      	return f(x-1,y-1)+f(x-y,y);//递归关系式 
      }
      int main(){
      	int n,k;
      	cin>>n>>k;
      	cout<<f(n,k);
      	return 0;
      }
      
      • 0
        @ 2023-10-21 14:32:18

        #include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int a[100000],b[100000]; a[1]=8; b[1]=1; for(int i=2;i<=n;i++) { a[i]=(a[i-1]*9+b[i-1])%12345; b[i]=(b[i-1]*9+a[i-1])%12345; } cout<<a[n]<<endl; return 0; }

        • 0
          @ 2023-10-21 14:05:58

          #include using namespace std; int f[210][7]; int n,k,i,j; int main() { scanf("%d%d",&n,&k); f[0][0]=1; for(i=1;i<=n;i++) f[i][1]= 1; for(i=1;i<=n;i++) for(j=1;j<=k;j++)if(i>=j) f[i][j]=f[i-j][j]+f[i-1][j-1]; printf("%d\n",f[n][k]); return 0; }

          • 1

          信息

          ID
          1307
          时间
          1000ms
          内存
          256MiB
          难度
          6
          标签
          递交数
          187
          已通过
          59
          上传者