uva 10479 找規律 遞迴

2021-09-07 11:24:25 字數 695 閱讀 5248

題意:有乙個初始序列第乙個數字是0。

規律是把前一次推出來的每個數字x。先接x個0,然後接x+1。

0 –> 1 –> 02 –> 1003 –> 02110004

那麼這個序列就變成0,1,0,2,1,0,0,3,0,2,1,1,0,0,0,4…

問序列裡第n個數字是多少,0 < n < 2^63。

題解:首先能夠看出這個序列的第2^k個數字一定是k,然後從第2^k個數字往前看一定是緊接著k-1個0,k-2個1 ,k-3個02。k-4個1003…。一直到k-i為1,把n在k-i這個序列的迴圈節中位置找到,然後遞迴下去直到能夠確定它的值。

#include 

#include

#define ll unsigned long long

ll n, f[65];

void dfs(int r, ll cur, ll len)

len = len - (r - 1);

for (int i = 1, j = r - 2; j > 0; i++, j--)

len = len - j * f[i - 1];

}}int main()

}if (f[l] == n)

printf("%d\n", l);

else

}return

0;}

UVA 木塊問題 101

uva 木塊問題 101,好開森好開森。雖然花了很長時間,不過能一次就ac也是蠻開心的,用c 寫效率就是不錯 疊木塊其實是乙個二維空間,每個木塊都有縱橫座標 include include includeusing namespace std block用於記錄木塊所在位置,x是位於哪一疊木塊,y是...

UVA 非常可樂

include include include include include using namespace std struct node int vis 205 205 注意vis陣列用於 int s,n,m int cup left 3 記錄三個杯子中每個杯子的剩餘狀態 int bfs fo...

UVa百題總結

總算刷夠 演算法競賽入門經典 100題了,就像教主所說,有了練acm的誠意,受自身水平和眼界所限,這總結難免會有一些個人色彩和不正確的地方,大牛勿噴。另外我的文筆可能極其拙劣,將就著看吧。按照教主的進度安排,最理想的情況是寒假學完前八章,下學期開始學動態規劃 數學和圖論的基礎,為暑假集訓打下基礎。暑...