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; }
行了。
您们应该都比我强,所以请切真正的蓝题吧
(这篇题解只供娱乐。。。