您的位置:首页 > 其它

URAL 1079 Maximum 递推

2016-09-07 10:53 204 查看
本题直接按照题意递推,也可以用记忆化搜索

#include<iostream>
using namespace std;
int a[100000],f[100000];
int main(){
int i,ans=1;
a[0]=0;
a[1]=1;
f[0]=0;
f[1]=1;
for(i=2; i<=99999; i++)
{
if(i&1)
a[i]=a[i/2]+a[i/2+1];
else
a[i]=a[i/2];
ans=max(ans,a[i]);
f[i]=ans;
}
while(1){
int n;
cin>>n;
if(!n)break;
cout<<f
<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: