题意:输入n,一共有3n个人,围着一个桌子坐,每个人有1~3个硬币,如果 ai + ai + n + ai + 2n ≠ 6
发硬币的人是满意的、 输出让这个发硬币的人满意的方法、 有可能很大答案要mod09 + 7、
思路:考虑反面,每个三元组互相独立,然后有7种方案和为6,那么有7^n个不合法方案,答案就是27^n-7^n
AC代码:
#include<cstdio>
const int mod = 1000000007;
int n,T;
long long sum,sun;
int main()
{
while(scanf("%d",&n)!=EOF){
sum=1,sun=1;int falg=0;
for(int i=0;i<n;i++){
sun*=7;
sun%=mod;
}
for(int i=0;i<n;i++){
sum*=27;
sum%=mod;
}
sum-=sun;
if(sum<0)
sum+=mod;
printf("%I64d\n",sum);
}
return 0;
}