【数学】Eddy Walker】的更多相关文章

#include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll qpow(ll a,ll b){ ll ans = ; while (b) { ){ ans = ans * a % mod ; } b >>= ; a = a * a % mod ; } return ans ; } int main() { ll T,n,m; ll res = ; for(scanf("%lld",…
2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n-1,从0号点出发,每次向左走或者向右走的概率是相同的,问你出发后,经过n-1个点后,恰好到达点m的概率是多少,答案是一个前缀积 题解: 讨论两个点的情况: 点0->1的期望是1 讨论三个点的情况 假设我们要到点3,我们必须经过点2,然而我们到了点2可能会再回到点1再到达点3,所以我们讨论必须经过的…
题目链接: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.函数是关于零点对称的,即…
参考于: https://www.luogu.org/problemnew/solution/P4723 shadowice1984 (太难) https://www.cnblogs.com/zhgyki/p/9671855.html (玄学) 居然还有解释: https://www.cnblogs.com/zhouzhendong/p/Berlekamp-Massey.html 线性递推BM算法,把前面的8-10项push进去? 下面是板子,求第n项调用参数是n-1. #include<bit…
思路: 概率结论题,好像属于线性递推,现在也不太懂(lll¬ω¬) #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//sprintf islower isupper #include <cstdlib>//malloc exit strcat itoa system("cls") #include <iostream>//pair #include <…
题意:给你n,m分别表示 长度为n的环 和最后走到的位置m 问从0点出发每次都能能往前或者往后走 求最后在m点的概率思路:我们可以先打表模拟一下 发现好像每个点的概率大概都是1/(n-1) 打表代码: #include<bits/stdc++.h> #include <random> #include <chrono> #define ll long long #define ull unsigned long long const int inf = 0x3f3f3f…
Eddy Walker 题目传送门 解题思路 因为走过所有的点就会停下来,又因为是从0出发的,所以当n>1时,在0停下来的概率为0,其他的为1/(n-1); 代码如下 #include <bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; typedef long long ll; inline int read(){ int res = 0, w = 0; char ch = 0; while(!isdigit(ch))…
A Eddy Walker 题意 你有n个点(0-n-1),按顺序形成一个环,初始时你在0的位子,你随机顺时针走一步或者逆时针走一步, 一旦你走到一个点后,环上所有点都被经过至少一次后,你就必须停下来. 问你最后停留在m这个位子的概率是多少. 注意输出的答案是前缀积. 思路 有意思的概率题. 读懂题意后发现这道题不难,模拟下可以发现在最后落在(1-n-1)的位子是等概率的,落在0这个位子是不可能的(除非n==1). #include <iostream> #include <vector…
线性递推的题目区域赛里还是挺多的,还是有必要学一下 ~ BM(Berlekamp-Massey)算法 ~ 有一个$n$阶线性递推$f$,想要计算$f(m)$,有一种常用的办法是矩阵快速幂,复杂度是$O(n^3logm)$ 在不少情况下这已经够用了,但是如果$n$比较大.到了$10^3$级别,这就不太适用了 而BM算法能将这个复杂度压低到$O(n^2logm)$,若加上NTT优化的话能做到$O(n^2+nlognlogm)$,十分厉害 这个算法的核心是将$f(m)$用递推的前$n$项表示 即,已知…
BM算法: 希望大家别见怪,当前博客只用于个人记录所用. [例题]Poor God Water 题意: 有肉,鱼,巧克力三种食物,有几种禁忌,对于连续的三个食物, 1.这三个食物不能都相同: 2.若三种食物都有的情况,巧克力不能在中间: 3.如果两边是巧克力,中间不能是肉或鱼. 求方案数 要求任意连续三个小时不能出现aaa,bbb,ccc,abc,cba,bab,bcb (假设b为巧克力) 然后进行推导,其实可以用矩阵快速幂 或者 BM算法. 复制粘贴一下CJY学长的代码: #include <…