// Problem: P1025 [NOIP2001 提高组] 数的划分 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1025 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h> usingnamespace std; #define int long long inlineintread(){int 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<<1)+ (x<<3)+(ch^48);ch=getchar();}return x*f;} //#define mo //#define N //#define M int n, m, i, j, k; int f[210][10][10];
intdfs(int n, int k, int v) { if(n==k&&k==0) return1; if(k==0&&n) return0; if(n<v*k) return0; // if(f[n][k][v]!=-1) return f[n][k][v]; int ans=0; for(int i=v; i*k<=n; ++i) for(int j=1; j*i<=n&&j<=k; ++j) ans+=dfs(n-i*j, k-j, i+1); // return f[n][k][v]=ans; return ans; }