可以發現,第一刀必須把兩個部分切成斐波那契數列兩項的倍數,然後才能避免切不下去的情況。
然後我們就可以o(
n√) 列舉約數d,判斷n/d是否是斐波那契數列中的一項,然後統計答案,再對m做同樣的,就好了。
**:
#include
#include
#include
#include
#include
#include
#define ll long long
using
namespace
std;
ll n,m;
ll f[101];
int main()
ll lim=sqrt(n);
ll ans=0;
for(int i=1;i<=lim;i++)
}if(num==k)
num=i;
k=0;
for(int j=1;j<=90;j++)
}if(num==k)}}
lim=sqrt(m);
for(int i=1;i<=lim;i++)
}if(num==k)
num=i;
k=0;
for(int j=1;j<=90;j++)
}if(num==k)}}
printf("%i64d",ans);
return
0;}
清北學堂模擬賽d3t1 a
問題描述 你是能看到第一題的friends呢。hja 怎麼快速記單詞呢?也許把單詞分類再記單詞是個不錯的選擇。何大爺給出了一種分單詞的方法,何大爺認為兩個單詞是同一類的當這兩個單詞的各個字母的個數是一樣的,如dog和god。現在何大爺給了你 個單詞,問這裡總共有多少類單詞。輸入格式 第一行乙個整數n...
清北學堂模擬賽d1t1 位運算1 bit
題目描述 lyk擁有乙個十進位制的數n。它賦予了n乙個新的意義 將n每一位都拆開來後再加起來就是n所擁有的價值。例如數字123擁有6的價值,數字999擁有27的價值。假設數字n的價值是k,lyk想找到乙個價值是k 1的數字,當然這個答案實在太多了,lyk想使得這個價值為k 1的數字盡可能大。輸入格式...
清北學堂模擬賽d3t6 c
分析 比較神奇的一道題.要把樹變成環肯定要先變成鏈,然後把鏈給拼接成環.接下來考慮乙個腦洞大開的樹形dp 設f i 0 表示i不與父節點相連的鏈數,f i 1 表示i與父節點相連的鏈數,先考慮怎麼轉移f i 0 如果i不與父節點相連,那麼i肯定與兩個子節點相連,其它的子節點都不與父節點相連,而且要剪...