博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客寒假算法基础集训营4 E:Applese 涂颜色(费马小定理+快速幂)
阅读量:3899 次
发布时间:2019-05-23

本文共 531 字,大约阅读时间需要 1 分钟。

【题目】

【题解】

由于左右相邻不能同色,确定了第一列之后,后面每一列的涂色方案也随之确定,因此答案就是 2^n ,还要对1e9+7取模。

但是n特别大,用到了费马小定理:

对于素数p,任取跟他互素的数a,有a^(p-1)(mod p)=1 ,所以任取b,有a^b%p=a^(b%(p-1))(%p)从而简化运算。

然后快速幂即可。

【代码】

#include 
const 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/

你可能感兴趣的文章
TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
查看>>
TCP/IP详解--再次深入理解TCP网络编程中的send和recv
查看>>
TCP与UDP收发的时候TCP有缓冲区还是UDP有缓冲区,使用它们时该注意什么?
查看>>
C++中map、hash_map、unordered_map、unordered_set通俗辨析
查看>>
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
查看>>
运算符重载参数的顺序对运算是否有影响
查看>>
什么时候要用虚析构函数?
查看>>
序列化、反序列化与jsoncpp学习
查看>>
同步/异步与阻塞非阻塞的关系
查看>>
epoll模型讲解/源码分析
查看>>
ELF格式与bss段
查看>>
java继承 long和float小记点
查看>>
记录几点在开发中遇到的问题 2015-7-28 (会更新)
查看>>
网银在线的异步操作代码示意图
查看>>
火狐Firefox浏览器安装Selenium_IDE的步骤以及其使用规则
查看>>
记录运行代码的时间长短
查看>>
关于yii2的一些知识的学习笔述
查看>>
用纯php实现MVC框架,文件目录模仿yii2
查看>>
新开发的体重管理项目----用纯php模仿yii2框架建立的
查看>>
JavaScript面向对象编程指南 的笔记
查看>>