四柱汉诺塔求操作次数:
using namespace std;
int a=1,cnt=0,acnt=2,ccnt=2;//1,3,5,9,13,17,25,33
const int MOD=1000007;
int main() {
int n;
scanf("%d",&n);
for(int i(2);i<=n;++i){
a=a+acnt;
if(a>MOD) a%=MOD;
++cnt;
if(cnt==ccnt){
acnt<<=1;
if(acnt>MOD) acnt%=MOD;
++ccnt;
cnt=0;
}
}
printf("%d",a);
return 0;
}
TLE了