本文共 531 字,大约阅读时间需要 1 分钟。
【题目】
【题解】
由于左右相邻不能同色,确定了第一列之后,后面每一列的涂色方案也随之确定,因此答案就是 2^n ,还要对1e9+7取模。
但是n特别大,用到了费马小定理:
对于素数p,任取跟他互素的数a,有a^(p-1)(mod p)=1 ,所以任取b,有a^b%p=a^(b%(p-1))(%p)从而简化运算。
然后快速幂即可。
【代码】
#includeconst int mod=1e9+7;typedef long long ll;const int maxn=1e5+5;char num1[maxn],num2[maxn];ll quick_pow(ll a,ll b){ ll tmp=a%mod; ll sum=1; while(b) { if(b&1) sum=sum*tmp%mod; tmp=tmp*tmp%mod; b>>=1; } return sum;}int main(){ scanf("%s%s",num1,num2); int l=strlen(num1); ll ans=0; for(int i=0;i
转载地址:http://cfben.baihongyu.com/