传送门


首先设\(P = lcm(r_i + g_i)\),因为\(P \mid 2019!\),所以在\([0,2019!]\)里随机实数相当于在\([0,2019!)\)随机实数,相当于在\([0,P)\)内随机整数。

需要求出被每扇门关住的概率,不妨算出通过前若干扇门的概率后差分。求出通过前\(i\)扇门的概率相当于\(i\)个模意义下的区间求交,可以做到\(O(NP)\)但是显然太慢。

考虑:有两个模意义下的方程\(x \in S_1 \mod P\)和\(x \in S_2 \mod Q\)且\(P \perp Q\),则由中国剩余定理可知,如果同时满足这两个条件的数集是\(x \in S \mod PQ\),那么\(|S|=|S_1||S_2|\)。这提示着我们两个互质的是独立的,可以独立计算概率。

同时如果\(P \mid Q\)或者\(Q \mid P\),可以快速使用bitset合并。那么假如所有\(r_i + g_i\)都能写成\(p^k\)的形式就可以快速计算答案。

但实际上并不是这样,所以考虑转化模数。

枚举\(a \in [0,X)\),将开始时间等于\(t = kX + a(k \in Z)\)的所有时间点放在一起做。在上面的做法中\(X = 1\),在这里不可行。可以注意到:\(kX + a \in S \mod p\)只和\(k \mod \frac{p}{\gcd(p , X)}\)有关,只需要让所有\(\frac{p}{\gcd(p,X)}\)只存在一个质因子即可满足上面的条件。可以求出最小的\(X = 2520\)。

这样我们可以枚举\(k\)在\([0 , \frac{p}{\gcd(p , X)})\)中的合法值,再按照上面的做法做。

只需要较为精细的实现就可以做到\(O(100XN)\)的复杂度,加上bitset可以获得\(\frac{1}{w}\)的常数优化。

代码

LOJ6587 WF2019 交通堵塞 CRT、bitset的更多相关文章

  1. BZOJ_1018_[SHOI2008]_交通堵塞traffic_(线段树)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1018 \(2*n\)的距形,起初没有边相连,之后有三种操作: 1.加边. 2.删边. 3.询问 ...

  2. BZOJ1018[SHOI2008]堵塞的交通——线段树

    题目描述 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总 ...

  3. BZOJ1018 [SHOI2008]堵塞的交通traffic

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. 【BZOJ】【1018】【SHOI2008】堵塞的交通traffic

    线段树 这题的线段树+分类讨论蛮神奇的……我以前学的线段树简直就是渣渣QAQ 看了下ydc题解里的思想>_>用线段树维护连通性!那么就自己写吧……每个节点表示一段区间的连通性(我的叶子节点 ...

  5. 1018: [SHOI2008]堵塞的交通traffic - BZOJ

    Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一 ...

  6. BZOJ 1018 堵塞的交通

    Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一 ...

  7. 数据结构(线段树):BZOJ 1018: [SHOI2008]堵塞的交通traffic

    1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 2638  Solved: 864 Descri ...

  8. BZOJ 1018 [SHOI2008]堵塞的交通traffic

    1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 2247  Solved: 706[Submit ...

  9. BZOJ 1018: [SHOI2008]堵塞的交通traffic [线段树 区间信息]

    1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 3064  Solved: 1027[Submi ...

随机推荐

  1. 洛谷P4047 [JSOI2010]部落划分题解

    洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...

  2. epoch,iteration与batchsize的区别

    神经网络中epoch与iteration是不相等的 batchsize:中文翻译为批大小(批尺寸).在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练: iterat ...

  3. C语言博客作业—2019-指针

    0.展示PTA总分 1.本章学习总结 1.1学习内容总结 指针做循环变量:即将指针作为循环变量,在指针移动到某一个位置的时候,达到了循环结束的条件,循环结束. for (p = a; p <= ...

  4. mysql sin() 函数

    mysql> ); +---------------------+ | sin(PI()/) | +---------------------+ | 0.49999999999999994 | ...

  5. 给.sh文件添加执行权限linux

    chmod是权限管理命令change the permissions mode of a file的缩写.. u代表所有者,x代表执行权限. + 表示增加权限. chmod u+x file.sh 就 ...

  6. 龙格-库塔法解常微分方程(c++)

    用龙格库塔法计算 #include <iostream> #include<iomanip> #include <cmath> using namespace st ...

  7. 刷题记录:[DDCTF 2019]homebrew event loop

    目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

  8. 集成了SSM框架的系统怎么做测试?

    1.首先在测试文件夹下新建一个测试基类BaseTest BaseTest中的代码如下: package wbl_ssm_blog.mapper; import org.junit.Test; impo ...

  9. [代码质量] Git统计本次提交新增代码行数,建议每个评审commit新增行数小于400行

    git log HEAD~1..HEAD --author="$(git config --get user.name)" --pretty=tformat: --numstat ...

  10. 【Java】Spring之基于注释的容器配置(四)

    注释是否比配置Spring的XML更好? 基于注释的配置的引入引发了这种方法是否比XML“更好”的问题.答案是每种方法都有其优点和缺点,通常,由开发人员决定哪种策略更适合他们.由于它们的定义方式,注释 ...