[2019牛客多校第二场][A. Eddy Walker]
题目链接:https://ac.nowcoder.com/acm/contest/882/A
题目大意:圆上有\(n\)个点,标号从\(0\)到\(n-1\),初始一个人在点\(0\),每次会等概率向左或向右移动一步,如果某一时刻所有点均被访问过则停止移动,问最终停留在\(m\)点的概率
题解:若\(m \neq 0\)且\(n \neq 1\),则\(ans=\frac{1}{n-1}\),具体证明如下
若设答案为\(f(n,m)\),可以发现这个函数有如下性质:
1.函数是关于零点对称的,即\(f(n,m)=f(n,n-m)\)
2.若\(m\neq 0,1,n-1\),则\(f(n,m)=\frac{f(n,m-1)+f(n,m+1)}{2}\),画一下图就能知道为什么了
接着考虑\(n\)的奇偶性,若\(n\)为奇数,则设\(a=\left \lfloor \frac{n}{2} \right \rfloor,b=\left \lceil \frac{n}{2} \right \rceil,c=b+1\)。可以发现由如上两条性质,有\(f(n,a)=f(n,b)\),且\(f(n,b)=\frac{f(n,a)+f(n,c)}{2}\),因此可以得出\(f(n,a)=f(n,b)=f(n,c)\)。以此类推则可以得出所有\(f(n,m)\)相等,所以函数取值为\(\frac{1}{n-1}\)
若\(n\)为偶数,则设\(a=\frac{n}{2}-1,b=\frac{n}{2},c=\frac{n}{2}+1\),可以得出\(f(n,a)=f(n,c)\),且\(f(n,b)=\frac{f(n,a)+f(n,c)}{2}\),同样可以推出\(f(n,a)=f(n,b)=f(n,c)\),同理可证\(f(n,m)=\frac{1}{n-1}(m\neq 0)\)
注意对\(n=1\)的特判即可
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define MOD 1000000007
LL T,n,m,ans=1ll;
LL qow(LL x,LL y){return y?(y&?x*qow(x,y-)%MOD:qow(x*x%MOD,y/)):;}
int main()
{
scanf("%lld",&T);
while(T--)
{
LL res;
scanf("%lld%lld",&n,&m);
if(m==)res=n>?:;
else res=qow(n-,MOD-);
ans*=res,ans%=MOD;
printf("%lld\n",ans);
}
return ;
}
[2019牛客多校第二场][A. Eddy Walker]的更多相关文章
- 2019牛客多校第二场 A Eddy Walker(概率推公式)
2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n ...
- 2019牛客多校第二场H-Second Large Rectangle
Second Large Rectangle 题目传送门 解题思路 先求出每个点上的高,再利用单调栈分别求出每个点左右两边第一个高小于自己的位置,从而而得出最后一个大于等于自己的位置,进而求出自己的位 ...
- [2019牛客多校第二场][G. Polygons]
题目链接:https://ac.nowcoder.com/acm/contest/882/G 题目大意:有\(n\)条直线将平面分成若干个区域,要求处理\(m\)次询问:求第\(q\)大的区域面积.保 ...
- 2019 牛客多校第二场 H Second Large Rectangle
题目链接:https://ac.nowcoder.com/acm/contest/882/H 题目大意 给定一个 n * m 的 01 矩阵,求其中第二大的子矩阵,子矩阵元素必须全部为 1.输出其大小 ...
- 2019牛客多校第二场H题(悬线法)
把以前的题补补,用悬线求面积第二大的子矩形.我们先求出最大子矩阵的面积,并记录其行三个方向上的悬线长度.然后排除这个矩形,记得还得特判少一行或者少一列的情况 #include <bits/std ...
- 2019牛客多校第二场D-Kth Minimum Clique
Kth Minimum Clique 题目传送门 解题思路 我们可以从没有点开始,把点一个一个放进去,先把放入一个点的情况都存进按照权值排序的优先队列,每次在新出队的集合里增加一个新的点,为了避免重复 ...
- 2019牛客多校第二场F-Partition problem(搜索+剪枝)
Partition problem 题目传送门 解题思路 假设当前两队的对抗值为s,如果把红队中的一个人a分配到白队,s+= a对红队中所有人的对抗值,s-= a对白队中所有人的对抗值.所以我们可以先 ...
- 2019牛客多校第二场BEddy Walker 2——BM递推
题意 从数字 $0$ 除法,每次向前走 $i$ 步,$i$ 是 $1 \sim K$ 中等概率随机的一个数,也就是说概率都是 $\frac{1}{K}$.求落在过数字 $N$ 额概率,$N=-1$ 表 ...
- [2019牛客多校第二场][E. MAZE]
题目链接:https://ac.nowcoder.com/acm/contest/882/E 题目大意:有一个\(n\times m\)的01矩阵,一开始可以从第一行的一个点出发,每次可以向左.向右. ...
随机推荐
- lua 元表Metatable (六)
元表理解起来比较抽象,但这是lua设置的一种数据结构而已, 假设有table_A.table_B 这2个table,如果table_A要操作table_B,显然是不可能的 因为者都之间是没有关系的,如 ...
- 在Ubuntu中搭建Python3的虚拟环境并开始django项目
搭建环境: 1.首先安装virtualenv: pip install virtualenv 2.创建虚拟环境:(指定安装Python3,若不写-p python3,默认安装Python2.7),en ...
- Python解Leetcode: 724. Find Pivot Index
leetcode 724. Find Pivot Index 题目描述:在数组中找到一个值,使得该值两边所有值的和相等.如果值存在,返回该值的索引,否则返回-1 思路:遍历两遍数组,第一遍求出数组的和 ...
- Win7原装ISO镜像封装USB3.0&网卡驱动
Win7原装ISO镜像封装USB3.0&网卡驱动 最新购买的电脑是Windows10系统,想装回Windows7,但是装Windows7发现网络适配器没出现,如果没有USB2.0接口,US ...
- 【01字典树】hdu-5536 Chip Factory
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5536 [题意] 求一个式子,给出一组数,其中拿出ai,aj,ak三个数,使得Max{ (ai+aj ...
- OpenCV安装和测试
参考链接:http://blog.csdn.net/bruce_zeng/article/details/7961153 OpenCv下载链接:http://sourceforge.net/proje ...
- Django rest-framework框架-访问频率控制
第一版: from rest_frameworkclass VisitThrottle(object): def __init__(self): self.history = None def all ...
- JS 发送弹幕
JS实现弹幕的发送 <div class="box1"> <div class="box2" style="width: 600px ...
- vue项目,子页面刷新404问题
翻车事故分析: 因需对项目整体优化,调整过程,采用了路由的history模式,本地项目运行,刷新子页面都是OK的. 部署到测试服务器,正常跳转都ok,但刷新子页面就会出现404,请求变成了get,没有 ...
- list 列表 函数的引用
方法 意义 L.index(v [, begin[, end]]) 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误 L.inse ...