245 条题解
- 
  0m_2y_2005 LV 3 @ 2007-11-15 22:48:17 看不懂的就是f[j] 
 i-j 就相当于把每份(即j份)都减去1
 比如 f[7][3] 中的 f[4][3] 为 1 1 2 对应 f[7][3] 中的 2 2 3
- 
  0@ 2007-11-08 20:51:56算法:递推 
 解析:f[i][j]为i划分成j份的数量,显然对于每一种划分有含1的和不含1的两种,不含1的从i中减去j,还可分成j份;含1的减去1,还剩j-1份,则
 f[i][j]=f[j]+f[j-1](i>j)
 f[1][1]=1
- 
  0@ 2007-11-08 10:16:29编译通过... 
 ├ 测试数据 01:运行超时...
 ├ 测试数据 02:运行超时...
 ├ 测试数据 03:运行超时...
 ├ 测试数据 04:运行超时...
 ├ 测试数据 05:运行超时...
 ---|---|---|---|---|---|---|---|-
 Unaccepted 有效得分:0 有效耗时:0msFlag Unaccepted 
 题号 P1117
 类型(?) 动态规划
 通过 1827人
 提交 3429次
 通过率 53%
 难度 2提交 讨论 题解 各位试试 
- 
  0@ 2007-10-31 22:02:58本人愚笨,不懂公式,用O(n^3*k)过的。 
- 
  0@ 2007-10-31 19:02:52编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-10-30 23:46:42哪位大牛再讲详细点 
 我用的硬搜过的,DP如何解????
- 
  0@ 2007-10-30 22:19:29f = sum{f} (k 
- 
  0@ 2007-10-14 14:51:58f:=f+f 
- 
  0@ 2007-10-03 16:36:35编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-10-01 17:15:05编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms搜也有这种效果!!!!! 
 搜也有这种效果!!!!!
 搜也有这种效果!!!!!
 搜也有这种效果!!!!!
 搜也有这种效果!!!!!
 搜也有这种效果!!!!!
 搜也有这种效果!!!!!
- 
  0@ 2007-08-23 21:08:37编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-08-20 22:54:08稍微变一下就可以看作是Ural P1017了。。。 
- 
  0@ 2007-08-20 17:56:28编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms直接递归下降的结果…… 
 但是那个方程还是不知道大牛们是怎么想出来的
- 
  0@ 2007-08-20 16:19:47标准动态规划(最简单的)! 编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-08-17 08:18:02这个题奥赛经典上给的标准做法就是搜索 
- 
  0@ 2007-08-13 20:41:08超简单的dp 
- 
  0@ 2007-08-13 09:41:44编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 306ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:306ms硬搜!! 
- 
  0@ 2007-08-02 15:03:56明明0s的题目,Vaal Leopard还在Running,Venus Blaze就没事,Vivid Puppy就更好了。 
- 
  0@ 2007-08-02 09:52:24简单的DP 
- 
  0@ 2007-07-31 00:43:22/* 
 ///////////////////////////////////
 //感谢baby,xuketian的程序和c++代码
 ///////////////////////////////////
 递推公式 f(n,k) = f(n-1,k-1) + f(n-k,k)N数分K分,若最小值为1,则1占一份,剩余N-1数分K-1份; 
 若最小值非1,所有数据-1,递归回f(n,k),至f(n-1,k-1)。DP 数组 存储分步运算结果,利用递推公式进行调用 DP 0,0 初始化 1 变相初始化 当N=1,K=1时f值为1 ///////////////////////////////////////// 
 //初学乍练,有错误难免,希望大家加QQ/Google Talk交流!
 //QQ 524490703 GT slain.carmick@gmail.com
 /////////////////////////////////////////*/ #include 
 using namespace std;int main() 
 {
 //freopen("a.in","r",stdin);
 //freopen("a.out","w",stdout);int n=0,k=0,; 
 cin>>n;
 cin>>k;int sp[n+1][k+1];//从1,1 开始使用数组,添加0,0空行空列 int i=0,j=0; //数组初始化 
 for(i=0;i