P3600 随机数生成器】的更多相关文章

Luogu P3600 随机数生成器 题目描述 sol研发了一个神奇的随机数系统,可以自动按照环境噪音生成真·随机数. 现在sol打算生成\(n\)个\([1,x]\)的整数\(a_1...a_n\),然后进行一些询问. \(q\)次询问,每次询问i有两个参数\(li\)和\(ri\),sol会计算\(\min_{li \leq j \leq ri} a_j\)(a数组中下标在\(li.ri\)之间的数的最小值). 最后测试结果会是这些询问得到的结果的最大值. sol进行了很多次实验,现在他想问…
题意 有一个长度为 \(n\) 的整数列 \(a_1, a_2, \cdots, a_n\) ,每个元素在 \([1, x]\) 中的整数中均匀随机生成. 有 \(q\) 个询问,第 \(i\) 个询问的结果是下标在 \([l_i , r_i ]\) 的元素的最小值. 求这 \(q\) 个询问结果的最大值的期望,\(\bmod 666623333\) . 数据范围 \(1 \le n, q, x \le 2000\) . 题解 参考了 fjzzq2002 的题解. 有个很有用的结论. 对于非负实…
题意 题目链接 Sol 一条重要的性质:如果某个区间覆盖了另一个区间,那么该区间是没有用的(不会对最大值做出贡献) 首先不难想到枚举最终的答案\(x\).这时我们需要计算的是最大值恰好为\(x\)的概率. 发现不是很好搞,我们记\(P(x)\)表示最大值\(\leqslant x\)的概率,那么恰好为\(x\)的概率为\(P(x) - P(x - 1)\) 计算概率可以直接用定义:合法的方案/总方案(\(x^n\)) 考虑如何计算合法方案:我们直接去枚举在询问区间中有多少个点\(\leqslan…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:洛谷3600 正解:概率DP 解题报告: 官方题解:戳这里 考虑最朴素的计算式就是:$\sum_{i=1}^{x} i*P(ans=i) $为所求. 上式又等于$\sum_{i=1}^{x} P(ans>=i)$,这个可以理解成对于$j>=i$…
把期望改成方案数最后除一下,设h[i]为最大值恰好是i的方案数,那么要求的就是Σh[i]*i 首先包含其他区间的区间是没有意义的,用单调栈去掉 然后恰好不好求,就改成h[i]表示最大值最大是i的方案数,求Σ(h[i]-h[i-1])*i即可 然后考虑h怎么求,\( h[i]=\sum_{j=1}^{n}i^j*(m-1)^{n-j}*选j个点使得每个区间都有一个选中点 \) 设选j个点使得每个区间都有一个选中点为g[j],设f[i][j]为前i个必选i点一共选j个点的方案数,那么\( g[j]=…
原题链接 写到一半发现写不下去了... 所以orz xyz32768,您去看这篇题解吧,思路很清晰,我之前写的胡言乱语与之差距不啻天渊 #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <random> #include <string> #include <…
题面传送门 我竟然独立搞出了这道黑题!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\) 的概率不是特别容易,故考虑换个思路…
               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的.而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的.我们可以这样认为这个可预见的结果其出现的概率是100%.所以用计算机随机函数所产生的“随机数”并不随机,…
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1362  Solved: 531[Submit][Status][Discuss] Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数.   接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t…
题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 [Submit][Status][Discuss] Description 栋栋最近迷上了随机算法,而随机数生成是随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m, a, c, X0,按照下面的公式生…
[BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的“随机”,其一般都是利用某个算法计算得来的. 比如,下面这个二次多项式递推算法就是一个常用算法: 算法选定非负整数x0,a,b,c,d作为随机种子,并采用如下递推公式进行计算. 对于任意i≥1,xi=(ax2i−1+bxi−1+c)mod d . 这样…
随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的“随机”,其一般都是利用某个算法计算得来的.比如,下面这个二次多项式递推算法就是一个常用算法:算法选定非负整数 x0,a,b,c,d 作为随机种子,并采用如下递推公式进行计算.对于任意 i≥1,这样可以得到一个任意长度的非负整数数列{xi }(i≥1),一般来说,我们认为这个数列是随机的.利用随机序…
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1442  Solved: 552 Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远不会读到第t页,输出-1. Sa…
对拍脚本 新建一个文档 check.sh 作为对拍脚本. #!/bin/bash while(true)do #死循环 ./data > .in #运行数据生成器,将数据输出到1.in ./std < .in > out1 #std是标准(暴力)程序 ./now < .in > out2 #now是现在要被测的程序 if diff -w out1 out2; then #比较,-w 是忽略行末空格 echo AC #如果一样就输出AC else echo WA cat out…
963. [NOI2012] 随机数生成器 ★★   输入文件:randoma.in   输出文件:randoma.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}:X[n+1]=(aX[n]+c) mod m 其中mo…
Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术的3.2.1节) 如果两个Random实例使用相同的种子,并且调用同样的函数,那么生成的sequence是相同的 也可以调用Math.random()生成随机数 Random实例是线程安全的,但是并发使用Random实例会影响效率,可以考虑使用ThreadLocalRandom变量. Random实…
一.java.lang.Math.Random 调用这个Math.Random()函数能够返回带正号的double值,取值范围是[0.0,1.0)的左闭右开区间,并在该范围内(近似)均匀分布. 二.java.util.Random 常用函数 protected int next(int bits):生成下一个伪随机数. boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值. void nextBytes(byte[] bytes)…
文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com/javase/7/docs/api/java/util/Random.htmlhttp://stac…
矩阵快速幂...+快速乘就OK了 -------------------------------------------------------------------------------------- #include<bits/stdc++.h>   using namespace std;   typedef long long ll;   ll MOD, a, c, x, n, g;   ll MUL(ll a, ll b) { ll ans = 0; for(; b; b >…
在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值.而作为返回值的函数,还能“捕获”外部的值,并多次使用它.这个特性,常可用来创建各种生成器. 下面通过创建一个“随机数生成器函数”作为演示:  在指定范围内生成随机数,同时每次生成的随机数都不重复. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 //随机数生成器函数 func createRando…
963. [NOI2012] 随机数生成器 ★★ 输入文件:randoma.in 输出文件:randoma.out 简单对照 时间限制:1 s 内存限制:128 MB **[问题描写叙述] 栋栋近期迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列.这样的方法须要设置四个非负整数參数m,a,c,X[0],依照以下的公式生成出一系列随机数{Xn}: X[n+1]=(aX[n]+c) mod m 当中mod…
原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 前言 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的.…
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandom Q:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://docs.oracle.com…
1.前言 随机数生成器在通信.加密.图像传输等领域应用广泛,且一般起到关键性作用.我在最近设计的一个近场射频通信协议的碰撞避退算法的过程中,便对此有深深体会. 2.伪随机数发生器 随机数发生器一般包括伪随机数发生器和真随机数发生器.伪随机数发生器的伪随机序列是由数学公式计算产生,如果生成随机数的算法确定了,那么这个随机数序列也就确定了.所以从数学意义上讲,伪随机数并不随机,序列本身也必然会重复.但是只要伪随机数发生器所产生的伪随机序列的周期足够成并且通过相应的检验,就可以在一定范围内使用.而且伪…
 详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84 Random即:java.util.Random, ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandomQ:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低.参考:http://doc…
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: \[X[n+1]=(aX[n]+c) mod m\] 其中mod m表示前面的数除以m的余数.从这个式子可以看出,这个序列的下一个数总是由上一个数生成的. 用这种方法生成的…
在C语言中标准库中的随机数产生函数的返回可能不是最优的,因为有些随机数生成器的低位并不随机,而另一些返回随机数的函数实现上又太复杂鸟.所以rand()%N并不是一个好方法,牛人给出的建议是使用: rand()/(RAND_MAX/N+1) 其中RAND_MAX在stdlib.h中定义,而假设N要远远小于RAND_MAX.而PARK和MIller提供的"最小标准"的可移植随机数生成器的C实现如下: #include <stdio.h> #include <stdlib.…
bzoj3122 [SDOI2013]随机数生成器 给定一个递推式, \(X_i=(aX_{i-1}+b)\mod P\) 求满足 \(X_k=t\) 的最小整数解,无解输出 \(-1\) \(0\leq a,\ b,\ t,\ P\leq10^9,\ P\) 为质数 BSGS 首先化式子,推得 \[X_k=a^{k-1}x+b\displaystyle\sum_{i=0}^{k-2}a_i\] 因此 \[\displaystyle\sum_{i=0}^{k-2}a_i\equiv\frac{t…
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: \[X[n+1]=(aX[n]+c) mod m\] 其中mod m表示前面的数除以m的余数.从这个式子可以看出,这个序列的下一个数总是由上一个数生成的. 用这种方法生成的…
洛咕 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}\) \(…