题意:找出第 n 个图形中向上的三角形个数。
从左上到右下观察每列向上三角形个数的变化就能找到规律:2^n*(2^n+1)/2
#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int MOD = 1000000007;
long long n, ans;
long long quickmod(long long a, long long n, long long MOD){
long long r = 1;
while(n){
if(n&1){
r = (a*r)%MOD;
}
a = (a*a)%MOD;
n >>= 1;
}
return r;
}
int main(){
//freopen("a.txt", "r", stdin);
while(~scanf("%I64d", &n)){
long long k = quickmod(2, n, MOD);
ans = k*(k+1)/2%MOD;
cout << ans << endl;
}
return 0;
}