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的主要内容,如果未能解决你的问题,请参考以下文章