题目链接

题目大意

三个杯子,硬币一开始在中间的杯子里,每次操作可能是左边和中间或右边和中间交换,问n次操作后,硬币在中间的概率

思路

设 f(n) f(n) 是n次操作后硬币在中间的概率,则很明显, f(n)=1−f(n−1)2 f(n) = \frac{1-f(n-1)}{2}
展开化简得到可以得到 anbn \frac{a_n}{b_n} 的形式 易得 bn=2n−1 b_n = 2^{n-1}

 an=⎧⎩⎨⎪⎪⎪⎪2n−1+132n−1−13n为偶数,n为奇数

\ a_n=\begin{cases} \frac{2^{n-1}+1}{3}& \text{n为偶数},\\\\\frac{2^{n-1}-1}{3} & \text{n为奇数}\\ \end{cases}
显然 2n−1+1 2^{n-1} + 1 和 2n−1 2^{n-1} 互质,所以不用约分了,幂的操作可以用快速幂来处理,再用费马小定理转除为乘,这题就搞定了


PS:代码给了CPP和Python两个版本的。
PS2:原生的Python比较慢,PyPy快一点,CF上交PyPy就可以过,python大法好,自己处理大数,pow自带取模~~

代码

CPP

#include <cstdio>
#include <iostream>
using namespace std;
const int maxn = 1e5+10;
const int mod = 1e9+7;
typedef long long ll;
ll num;
ll Qpow(ll a,ll b){ll res = 1;while(b){if(b&1) res = res * a %mod;a = a * a % mod;b >>= 1;}return res;
}int main (){int n;cin >>n;ll b = 2;ll flag = -1;for(int i = 0 ; i < n ; i ++){scanf("%I64d",&num);b = Qpow(b,num);if(num %2 == 0) flag = 1;}b = b*Qpow(2LL,mod-2)%mod; // b = 2^n-1ll a = (b+flag+mod)%mod*Qpow(3LL,mod-2)%mod; //a = (2^n-1 -/+ 1) / 3printf("%I64d/%I64d",a,b);return 0;
}

Python

from functools import reduce
mod = 1000000007
n = input()
num = list(map(int,input().split()))
flag = 1 if len(list(filter(lambda x: x%2 == 0,num))) else -1
b = reduce(lambda x,y:pow(x,y,mod),num,2)
b = b*pow(2,mod-2,mod)%mod # b = 2^n-1
a = (b+flag)*pow(3,mod-2,mod)%mod #a = (2^n-1 -/+ 1) / 3
print("%d/%d"%(a,b))

Codeforces 696C. PLEASE(快速幂+费马小定理)相关推荐

  1. HDU4549 M斐波那契数列(矩阵快速幂+费马小定理)

    Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) ...

  2. HDU - 5667 Sequence(矩阵快速幂+费马小定理降幂)

    题目链接:点击查看 题目大意:给出函数f(x): 现给出n,a,b,c,mod,求f(n)对mod取模后的结果 题目分析:这个题目相对于前几个题来说稍微加大了点难度,但还是挺水的一个题,首先我们可以对 ...

  3. 洛谷 [P1593 因子和] {快速幂+费马小定理求逆元+求解质因子} 奋斗的珂珂~

    题目描述 输入两个整数 a 和 b,求 aba^bab 的因子和. 由于结果太大,只要输出它对 9901 取模的结果. 输入格式 仅一行,为两个整数 a和 b. 输出格式 输出一行一个整数表示答案对 ...

  4. HDU 4549 M斐波那契数列(矩阵快速幂费马小定理)

    ps:今天和战友聊到矩阵快速幂,想到前几天学长推荐去刷矩阵专题,挑了其中唯一一道中文题,没想到越过山却被河挡住去路... 题目链接:[kuangbin带你飞]专题十九 矩阵 R - M斐波那契数列 T ...

  5. 51nod 1013快速幂 + 费马小定理

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 这是一个等比数列,所以先用求和公式,然后和3^(n+1)有关,有n ...

  6. 1916. 统计为蚁群构筑房间的不同顺序 费马小定理+快速幂+DFS

    1916. 统计为蚁群构筑房间的不同顺序 你是一只蚂蚁,负责为蚁群构筑 n 间编号从 0 到 n-1 的新房间.给你一个 下标从 0 开始 且长度为 n 的整数数组 prevRoom 作为扩建计划.其 ...

  7. 牛客小白月赛28 A牛牛和牛可乐的赌约 (数论-费马小定理)

    题目 A牛牛和牛可乐的赌约 题目链接 传送门 题解 注意阅读题目是计算牛牛输的概率. 需要掌握的知识点 快速幂 费马小定理 分数取模 首先我们容易知道 牛牛 赢的概率是 1 n m \frac{1}{ ...

  8. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...

  9. HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Li ...

最新文章

  1. 查看Hive SQL执行日志
  2. oracle游标循环定义变量赋值,PL/SQL  循环 数组 游标的使用
  3. 我凭什么拿到了阿里、腾讯、今日头条3家大厂offer?通用流行框架大全
  4. C#.NET验证码智能识别学习笔记---03#.Net中@符号的意思
  5. 第一次大作业总结——四则运算程序
  6. android 识别车牌颜色,Android、ios移动端车牌识别sdk / 车牌识别API
  7. 基于php+mysql的企业人事管理系统
  8. iOS AppStore 转让APP
  9. 【WA】TBC功能WA串更新日志(更新至2022.06.02)
  10. vue使用markdown
  11. ipv4地址怎么设置 手机_手机ip地址怎么设置 手机WIFI静态IP设置方法
  12. 赞!WEB设计之路!网络视觉艺术发展史概览
  13. 一款app 开发在线工具:app inventor
  14. 视频:忆童年有摇杆,《暗黑破坏神3》街机版演示
  15. 如何防止SP利用欠费进行套利
  16. 中国古代经典励志名言100句,百读不厌,陪孩子一起读经典!
  17. 常用的web服务器软件整理
  18. Unity3d学习笔记 var 关键字
  19. processing制作熊猫头像跟随鼠标拖尾
  20. 浅谈C语言嵌入式系统编程注意事项

热门文章

  1. 阅读“细粒度图像识别关键技术研究”
  2. linux 修改ip权限,Linux下修改IP地址
  3. 部分面向对象习题,留给学生做不错!!!
  4. 计算机应用基础图文混合排版,图文表混合排版  说课稿
  5. 深度学习算法评价标准AP bbox bev 3d
  6. Visual C# 中XML注释的使用(含注释在开发时显示换行)
  7. openpyxl模块安装及使用
  8. 辣鸡HellPix刷yyb网络流题单(orz yyb)
  9. 能够熟练使用计算机 手机,下列加点成语使用正确的一项是()A.在这时候,众人也都豁然开朗地笑起来,教室内外充满了快活的空气。B.他操作计算机非常熟练,已经达到了为所欲为的程度。C.华为手机做工精...
  10. Vscode Backspace删除失效