1062 序列中最大的數
有這樣乙個序列a:
a[0] = 0
a[1] = 1
a[2i] = a[i]
a[2i+1] = a[i] + a[i+1]
輸入乙個數n,求a[0] - a[n]中最大的數。
a[0] = 0, a[1] = 1, a[2] = 1, a[3] = 2, a[4] = 1, a[5] = 3, a[6] = 2, a[7] = 3, a[8] = 1, a[9] = 4, a[10] = 3。
例如:n = 5,最大值是3,n = 10,最大值是4。
input
第1行:乙個數t,表示後面用作輸入測試的數的數量。(1 <= t <= 10)output第2 - t + 1行:t個數,表示需要計算的n。(1 <= n <= 10^5)
共t行,每行1個最大值。input示例
2output示例510
34
ps: n#include #define maxn 100000 + 999的範圍只到十萬,稍微有些小,所以直接打表就能過。
typedef long long ll;
using namespace std;
ll a[maxn],b[maxn];
void init()
{ a[0]=0; a[1]=1;
b[0]=0; b[1]=1;
int i;
for(i=2; i<=maxn; i++)
{ int j=i/2;
if(i%2!=0)
a[i]=a[j]+a[j+1];
else
a[i]=a[j];
if(b[i-1]>t;
while(t--)
{ int n;
cin>>n;
cout<
51nod 1062 序列中最大的數
1062 序列中最大的數 ural 1079 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 有這樣乙個序列a a 0 0 a 1 1 a 2i a i a 2i 1 a i a i 1 輸入乙個數n,求a 0 a n 中最大的數。a 0 0,a 1 1,a 2 ...
51nod 1062 序列中最大的數 (打表)
基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 有這樣乙個序列a a 0 0 a 1 1 a 2i a i a 2i 1 a i a i 1 輸入乙個數n,求a 0 a n 中最大的數。a 0 0,a 1 1,a 2 1,a 3 2,a 4 1,a 5 3,a 6...
51Nod 1062 序列中最大數 打表
有這樣乙個序列a a 0 0 a 1 1 a 2i a i a 2i 1 a i a i 1 輸入乙個數n,求a 0 a n 中最大的數。a 0 0,a 1 1,a 2 1,a 3 2,a 4 1,a 5 3,a 6 2,a 7 3,a 8 1,a 9 4,a 10 3。例如 n 5,最大值是3,n...