发现新大陆
oj得分大法,给我整吐了。。。
源于洛谷1028数的计算(前面只是解题过程,精髓在后面!)
疯狂tle
直到看到大佬的题解
还是运用数学方法解决了题目,厉害厉害
感觉如果递归tle的话,就要考虑递推的方法了。
附上题解
#include<iostream>
using namespace std;
int a[1005];
void count(int ip)
{
a[1]=1;
for(int i=2;i<=ip;i++)
{
if(i%2!=0)a[i]=a[i-1];
else a[i]=a[i/2]+a[i-1];
}
}
main()
{
int ip;
cin>>ip;
count(ip);
cout<<a[ip];
return 0;
}
这个分奇偶来寻找到的规律可以通过手算发现(可取洛谷上看题解)
但是真正震惊我的是一个叫做打表贴答案的变态方法(本人以后尽量不用)(其实人家竞赛的时候后台也能看到你这个作弊代码,所以估计会发生不好的事,还是别用了),在本地用超时的算法把答案表打出来,然后塞到数组里直接打答案,哈哈哈哈哈,笑死我了。真的强(学校平时的计算机题目着实可以用此方法蒙混过关)。
但真正的收获是数学的递推规律寻找的思路,这道题还是很棒的!