luoguP5035金坷垃
阿新 • • 發佈:2018-11-19
怎麼說呢
第一道藍題祭(。。。大概其實是橙題
(畢竟是藍的,記錄一下【噗
emmmm
題面還比較好理解吧
只要最後剩下的深度是1就合格了
我們可以倒著推
能變成深度1需要前一個深度是2
並且變成2之前1不能被用過
這樣的話2是被4推出來的
當我們一步步推下去
發現
!
這不就是一道快速冪嘛!
輸入k
輸出2的k-1次冪就是結果了
不過要注意一下資料範圍
我一開始開的int,於是20分
改成long long就過了
上程式碼:
#include<cstdio> using namespace std; const intmod=123456789;//取模別忘了 long long ksm(long long n,long long k){//不開long long見祖宗 long long a=1; while(k){ if(k&1)a=a*n%mod; n=n*n%mod; k>>=1; } return a%mod; } int main(){ long long k; scanf("%lld",&k); printf("%lld",ksm(2,k-1)); return0; }
行了。
您們應該都比我強,所以請切真正的藍題吧
(這篇題解只供娛樂。。。