1. 程式人生 > >luoguP5035金坷垃

luoguP5035金坷垃

怎麼說呢

第一道藍題祭(。。。大概其實是橙題

 

(畢竟是藍的,記錄一下【噗

emmmm

題面還比較好理解吧

只要最後剩下的深度是1就合格了

我們可以倒著推

能變成深度1需要前一個深度是2

並且變成2之前1不能被用過

這樣的話2是被4推出來的

當我們一步步推下去

發現

這不就是一道快速冪嘛!

輸入k

輸出2的k-1次冪就是結果了

不過要注意一下資料範圍

我一開始開的int,於是20分

改成long long就過了

上程式碼:

#include<cstdio>
using namespace std;
const int
mod=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)); return
0; }

行了。

您們應該都比我強,所以請切真正的藍題吧

(這篇題解只供娛樂。。。