题解 [HDU6747] Rotate 期望 + 逆元
一个圈,从内到外一共被分成了 \(n\) 个环,中间是空的。
我们把从外到内第 \(i\) 层环平分成 \(a[i]\) 份,其中 \(a[i]\) 是偶数,我们把这 \(a[i]\) 份黑白染色,第奇数个染成黑色,第偶数个染成白色。
现在我们旋转每一层,每一层都会等概率随机到一个中止位置。
问黑色的联通块数目的期望。两块黑色的区域有交点即算联通。层之间的旋转是相互独立的。
\(1\le n\le 10,1\le a_i \le 1000,1\le T\le10,a_i\) 是偶数且不降
因为 \(a_i\) 为偶数且不降,可以发现相邻的黑块连边如同一棵树一样
\]
黑块的数目和为 \(\sum\limits_{i = 1}^n \frac{a_i}2\) ,考虑每层黑边的期望数目
对于任意两层的任意两个黑块,他们相交的概率是 \(\frac{1}{a_i} + \frac{1}{a_{i + 1}}\) ,乘上他们的块数,就是期望的相交个数。
\]
最后的式子由费马小定理可知当 \(p\) 为质数时: \(\frac{a[1]+a[n]}{4} = a[1]\times a[n] \times pow(4,p-2) \ mod\ p\)
代码 注意防止溢出
const int N = 1010, mod = 1e9 + 7;
int a[N];
ll qpow(ll a, ll b, ll p) {
ll ans = 1;
for (; b; b >>= 1, a = a * a % p)
if (b & 1)ans = ans * a % p;
return ans;
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n;
cin >> n;
for (int i = 1; i <= n; i += 1) cin >> a[i];
ll ans = 0;
cout << ((a[1] + a[n]) * qpow(4, mod - 2, mod) % mod) << "\n";
}
}
题解 [HDU6747] Rotate 期望 + 逆元的更多相关文章
- LeetCode题解:Rotate List
Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. For exa ...
- LeetCode题解之Rotate Array
1.题目描述 2.代码 void rotate(vector<int>& nums, int k) { ) return ; && (k / nums.size() ...
- 洛谷 P5249 [LnOI2019]加特林轮盘赌 题解【概率期望】【DP】
很有意思的题目. 题目背景 加特林轮盘赌是一个养生游戏. 题目描述 与俄罗斯轮盘赌等手枪的赌博不同的是,加特林轮盘赌的赌具是加特林. 加特林轮盘赌的规则很简单:在加特林的部分弹夹中填充子弹.游戏的参加 ...
- HDU 5984 题解 数学推导 期望
Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorative s ...
- 【洛谷P3802】小魔女帕琪 题解(概率期望)
前言:蒟蒻太弱了,不会推式子QAQ -------------------- 题目链接 题目大意:给定$7$种能量晶体各$a_i$个,每次随机摸到一个晶体,如果连续摸到$7$个不同的晶体就会触发一次伤 ...
- LeetCode 题解之Rotate List
1.题目描述 2.题目分析 首先数出链表中的元素个数count,然后对k = k % count 求余数.接着将链表形成一个环,从最后一个元素开始,运动 count - k 步,此时节点的下一个节点 ...
- LeetCode题解之Rotate String
1.题目描述 2.问题分析 直接旋转字符串A,然后做比较即可. 3.代码 bool rotateString(string A, string B) { if( A.size() != B.size( ...
- Bzoj 3450: Tyvj1952 Easy 期望/概率,动态规划
3450: Tyvj1952 Easy Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 431 Solved: 325[Submit][Status] ...
- 【ZOJ 3609】Modular Inverse 最小乘法逆元
The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x ...
- [JLOI2012]时间流逝 树上高斯消元 概率期望
题面 题意:(感觉题面写的题意是错的?)有\(n\)种能量不同的圈,设当前拥有的圈的集合为\(S\),则: 1,每天有\(p\)概率失去一个能量最小的圈.特别的,如果\(S = \varnothing ...
随机推荐
- ABAP 自定义附件
SWO1 关键字 *------------------------------------------------------------* REPORT ZTEST_CSW1. *TABLES ...
- The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission,iphone手机video标签报错
The request is not allowed by the user agent or the platform in the current context, possibly becaus ...
- 用最清爽的方式开发dotNet
用最清爽的方式开发dotNet 不管是官方自带模板还是其他开源搞的,总是一来一大堆,如果你也嫌弃这些过于臃肿,不如看看我这个方式 前提 假设我要做一个简单的api 方式 想到清爽,那肯定是简单方便,脑 ...
- js剪贴板应用clipboardData
clipboardData 对象 提供了对剪贴板的访问. 三个方法 1.clearData(sDataFormat) 删除剪贴板中指定格式的数据. 2.getData(sDataFormat) 从剪贴 ...
- Linux笔记03: Linux常用命令_3.3文件操作命令
3.3 文件操作命令 3.3.1 stat命令 ●命令名称:stat. ●英文原意:display file or file system status. ●所在路径:/usr/bin/stat. ● ...
- Mybatis-Flex之基础查询
1.selectOneById /** * selectOneById(id):根据主键查询数据. */ @Test public void testSelectOneById() { /** * S ...
- ElasticSearch 命令执行漏洞
漏洞编号:CVE-2014-3120 漏洞详情 CVE编号 CVE-2014-3120 漏洞级别 中危6.8 标题 Elasticsearch默认配置允许动态脚本执行漏洞 披露时间 2014/07/2 ...
- flask的cookie和session会话保持
Cookie 获取请求cookie 通过请求对象中的cookies属性可以获取cookie. 实例: from flask import Flask, request @app.route(" ...
- ChatGPT API来了 附调用方法及文档
3月1日,OpenAI 放出了ChatGPT API(GPT-3.5-turbo 模型),1000个tokens为$0.002美元,等于每输出 100 万个单词,价格才 2.7 美金(约 18 元人民 ...
- 在Linux上部署.net Core 步骤以及遇到的一些问题
Linux安装部署手册 一.安装.NET Core SDK centos 7 系统命令为: sudo rpm -Uvh https://packages.microsoft.com/config/ce ...