首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
洛谷P3306 随机数生成器
】的更多相关文章
洛谷P3306 随机数生成器
题意:给你一个数列,a1 = x,ai = (A * ai-1 + B) % P,求第一个是t的是哪一项,或者永远不会有t. 解:循环节不会超过P.我们使用BSGS的思想,预处理从t开始跳√P步的,插入Hash表内. 然后每次把a1跳√P步,来看是否在Hash表中存在. 这样发现我们有40,WA了60分.为什么呢?考虑是否存在两个数x和y,它们跳一次之后一样了.发现这种情况只会出现在A = 0的时候,于是特判掉A = 0.可获得100分. #include <bits/stdc++.h> ;…
洛谷P3600 随机数生成器(期望dp 组合数)
题意 题目链接 Sol 一条重要的性质:如果某个区间覆盖了另一个区间,那么该区间是没有用的(不会对最大值做出贡献) 首先不难想到枚举最终的答案\(x\).这时我们需要计算的是最大值恰好为\(x\)的概率. 发现不是很好搞,我们记\(P(x)\)表示最大值\(\leqslant x\)的概率,那么恰好为\(x\)的概率为\(P(x) - P(x - 1)\) 计算概率可以直接用定义:合法的方案/总方案(\(x^n\)) 考虑如何计算合法方案:我们直接去枚举在询问区间中有多少个点\(\leqslan…
[洛谷P5147]随机数生成器
题目大意:$$f_n=\begin{cases}\frac{\sum\limits_{i=1}^nf_i}n+1&(n>1)\\0&(n=1)\end{cases}$$求$f_n(n<2^{31})$ 题解:考虑$n>2$时的情况. $$f_n=\dfrac{\sum\limits_{i=1}^nf_i}n+1\\nf_n=\sum\limits_{i=1}^{n-1}f_i+f_n+n\\\begin{align}(n-1)f_n=\sum\limits_{i=1}^{…
洛谷P3600随机数生成器——期望+DP
原题链接 写到一半发现写不下去了... 所以orz xyz32768,您去看这篇题解吧,思路很清晰,我之前写的胡言乱语与之差距不啻天渊 #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <random> #include <string> #include <…
洛谷 P3600 - 随机数生成器(期望 dp)
题面传送门 我竟然独立搞出了这道黑题!incredible! u1s1 这题是我做题时间跨度最大的题之一-- 首先讲下我四个月前想出来的 \(n^2\log n\) 的做法吧. 记 \(f(a)=\max\limits_{i=1}^q\min\limits_{j=l_i}^{r_i}a_j=x\) 首先期望转概率,设 \(p_i\) 表示 \(f(a)=x\) 的概率,答案即为 \(\sum p_i\times i\). 注意到这题直接求 \(f(a)=x\) 的概率不是特别容易,故考虑换个思路…
【洛谷 P3306】[SDOI2013]随机数生成器 (BSGS)
题目链接 怎么这么多随机数生成器 题意见原题. 很容易想到\(BSGS\)算法,但是递推式是\(X_{i+1}=(aX_i+b)\mod p\),这显然不是一个等比数列. 但是可以用矩阵乘法来求出第\(i\)项,所以好像可以用\(BSGS\)套矩阵乘法?但是总要把那个常数项除过来吧,矩阵除法是什么鬼? 无奈只好放弃去看题解. 看完之后,哎,我太蒻了. \[X_{i+1}=(aX_i+b)\mod p\] \[X_{i+1}=a(X_i+\frac{b}{a})\mod p\] \[X_{i+1}…
洛谷P3306 [SDOI2013]随机数生成器(BSGS)
传送门 感觉我BSGS都白学了……数学渣渣好像没有一道数学题能自己想出来…… 要求$X_{i+1}=aX_i+b\ (mod \ \ p)$ 左右同时加上$\frac{b}{a-1}$,把它变成等比数列$$X_{i+1}+\frac{b}{a-1}=a(X_i+\frac{b}{a-1}) \ (mod\ p)$$ 然后根据等比数列递推公式$$X_n+\frac{b}{a-1}=a^{n-1}(X_1+\frac{b}{a-1}) \ (mod\ p)$$ 那么我们要求$n$,已知$$a^{n-…
洛谷 [P4035] 球形空间生成器
高斯消元 注意浮点误差,判断一个浮点数是否为 0 的时候,看他的绝对值与 \(10^{-8}\)的关系 #include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> using namespace std; double a[20][20], b[20], c[20][2…
洛咕 P3306 [SDOI2013]随机数生成器
洛咕 P3306 [SDOI2013]随机数生成器 大力推式子??? \(X_{i}=\underbrace{a(a(\cdots(a(a}_{i-1个a}X_1+b)))\cdots)\) \(=b+ba+ba^2+\cdots+ba^{i-3}+ba^{i-2}+X_1a^{i-1}\equiv t(\text{mod }p)\) \(b\frac{a^{i-1}-1}{a-1}+a^{i-1}x_1\equiv t(\text{mod }p)\) 拆分一波,提出\(a^{i-1}\) \(…
P3306 [SDOI2013]随机数生成器(bzoj3122)
洛谷 bzoj 特判+多测真恶心 . \(0\le a\le P−1,0\le b\le P−1,2\le P\le 10^9\) Sample Input 3 7 1 1 3 3 7 2 2 2 0 7 2 2 2 1 Sample Output 1 3 -1 推一下前几项就能知道: \[x_n\equiv t\equiv a^{n-1}x_1+b\sum_{i=0}^{n-2}a^i\pmod p \] \[t\equiv a^{n-1}x_1+b\frac{a^{n-1}-1}{a-1}\…