record洛谷试炼场_过程与递归函数_p1028

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了record洛谷试炼场_过程与递归函数_p1028相关的知识,希望对你有一定的参考价值。

first way:

first try:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int k=1;
 4 void add(int s)
 5 {
 6     if(s<=1||s/2<=0)  return;
 7     for(int i=1;i<=s/2;i++)  
 8     {
 9         add(i);
10         k++;
11     }
12 }
13 int main()
14 {
15     int n;
16     cin>>n;
17     add(n);
18     cout<<k;
19 }

result:

技术分享

超时。

second way:

first try:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int a[10001];
 4 int main()
 5 {
 6     int n;
 7     cin>>n;
 8     a[0]=1;
 9     for(int i=1;i<=n;i++)
10       for(int j=0;j<=i/2;j++)
11         a[i]+=a[j];
12     cout<<a[n];
13         
14 }

result:

技术分享

正确。

反思:second way用数组模拟了每个满足条件的子数,最后直接输出调用,时间复杂度小。

以上是关于record洛谷试炼场_过程与递归函数_p1028的主要内容,如果未能解决你的问题,请参考以下文章

洛谷试炼场 提高模板-nlogn数据结构

洛谷普及试炼场之旅

洛谷 试炼场 P1233 排队接水 (排序,贪心)

[填坑]期望概率DP 试炼场

洛谷-----P1028 [NOIP2001 普及组] 数的计算

动态规划初级试炼场