JZOJ 4212. 【五校联考1day2】我想大声告诉你
题目
解析
设 \(f_{i,j}\) 表示 \(i+1..n\) 个人能受到 \(j\) 次攻击的概率
因为选人出局的顺序是无所谓的,所以我们设从 \(1..n\) 依次选人出局
那么转移时需要分类,分类即加
- 选第 \(i\) 个人出局,那么 \(i+1..n\) 会受到 \(1\) 次攻击。先前攻击了 \(j-1\) 次,\(i\) 必须要活下来。\(f_{i,j} = f_{i-1,j-1} \times (1-p)^{j-1}\)
- 第 \(i\) 个人是遭受攻击后被杀,那么它必然在前 \(j\) 次攻击的某一次后出局。\(f_{i,j} = f_{i-1,j} \times (1-(1-p)^j)\)
然后考虑答案是什么
对于 \(k\) 次攻击,小 \(R\) 可以是在所有的 \(f_{i,k}\) 后在被选中出局,那么他必然在受到攻击后仍活下来
所以 \(ans_k = \frac{1}{n} \times (1-p)^k \times \sum_{i=0}^n f_{i,k}\)
乘上 \(\frac{1}{n}\) 是因为小 \(R\) 有 \(\frac{1}{n}\) 的概率在这个位置上
\(Code\)
#include<cstdio>
#include<cstring>
#define LL long long
using namespace std;
const int N = 2e3 + 5;
const LL P = 258280327;
LL f[N][N] , pow[N];
inline LL fpow(LL x , LL y)
{
if (x == 0 && y == 0) return 0;
x = (x + P) % P;
LL res = 1;
while (y)
{
if (y & 1) res = res * x % P;
y >>= 1 , x = x * x % P;
}
return res;
}
int main()
{
int T;
scanf("%d" , &T);
for(; T; T--)
{
int n; LL x , y , p;
scanf("%d%lld%lld" , &n , &x , &y);
p = x * fpow(y , P - 2) % P;
pow[0] = 1;
for(register int i = 1; i <= n; i++) pow[i] = pow[i - 1] * (1 - p + P) % P;
memset(f , 0 , sizeof f);
f[0][0] = 1;
for(register int i = 1; i < n; i++)
{
f[i][0] = f[i - 1][0] * (1 - pow[0] + P) % P;
for(register int j = 1; j < n; j++)
f[i][j] = f[i - 1][j - 1] * pow[j - 1] % P ,
f[i][j] += f[i - 1][j] * (1 - pow[j] + P) % P;
}
for(register int k = 0; k < n; k++)
{
LL ans = 0;
for(register int i = 0; i < n; i++) ans = (ans + f[i][k]) % P;
printf("%lld " , ans * pow[k] % P * fpow(n , P - 2) % P);
}
printf("\n");
}
}
JZOJ 4212. 【五校联考1day2】我想大声告诉你的更多相关文章
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底
[五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...
- 五校联考 running (欧拉函数)
题面 \(solution:\) 讲真吧,这道题真的出得,嗯,太恐怖了.考场上这道题真的把我看懵了,这道题以前是见过的,但欧拉函数?我学过吗?一道容斥都要超时的题目,我都要为我自己点根香了,拿着gcd ...
- 【五校联考3day2】C
題意: 現有一平面直角坐標系,有n個點,每一個點必須向某一個方向發射射線,且任意一條射線必須與某一條坐標軸平行.定義一種發射射線的方案是合法的,則方案必須滿足: 1.沒有一條射線交叉 2.沒有一條射線 ...
- 五校联考R1 Day1T3 平面图planar(递推 矩阵快速幂)
题目链接 我们可以把棱柱拆成有\(n\)条高的矩形,尝试递推. 在计算的过程中,第\(i\)列(\(i\neq n\))只与\(i-1\)列有关,称\(i-1\)列的上面/下面为左上/左下,第\(i\ ...
- 五校联考R1 Day2T2 矩阵matrix(容斥)
题目链接 容易想到容斥,但是很恶心,因为要对行和列都容斥,然后行+列又要容斥.. 于是得到\(O(nm\log)\)的做法. 就有70分了: #include <cstdio> #incl ...
- 五校联考模拟赛Day2T2矩阵(容斥原理)
题意 $n * m$的网格,对其进行黑白染色,问每一行每一列至少有一个黑格子的方案数. Sol 考场上只会$n^3$的dp,还和指数级枚举一个分qwq 设$f[i][j]$表示到了第$i$行,已经有$ ...
- NOIP2016提高A组五校联考4总结
坑爹的第一题,我居然想了足足3个小时,而且还不确定是否正确. 于是,我就在这种情况下心惊胆跳的打了,好在ac了,否则就爆零了. 第二题,树形dp,本来差点就想到了正解,结果时间不够,没打完. 第三题, ...
- 【NOIP2016提高A组五校联考4】square
题目 分析 首先,设\(f_{i,j}\)表示最大的以(i,j)为左下角的正方形的边长. 转移显然,\(f_{i,j}=\max(f_{i-1,j},f_{i,j-1},f_{i-1,j-1})+1\ ...
- 【NOIP2016提高A组五校联考4】label
题目 题目 20%算法 设\(f_{i,j}\)表示第i个节点选了j这个权值的方案数. 显然转移方程为,\[f_{i,j}=\Pi_{v=son(i)}(\sum_{k=1}^{j-k}f_{v,k} ...
随机推荐
- 数据结构初阶--堆排序+TOPK问题
堆排序 堆排序的前提 堆排序:是指利用堆这种数据结构所设计的一种排序算法.堆排序通过建大堆或者小堆来进行排序的算法. 举个例子:给定我们一个数组{2, 3,4, 2,4,7},我们可把这个数组在逻辑上 ...
- ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)
目录 前言 准备SHP数据 ArcMap 的筛选 QGIS 的筛选 如何编写查询条件 前言 当我们用GIS软件打开一个SHP文件的时候,会显示出里面全部的几何图形,假如我只想要其中的一部分数据显示出来 ...
- 使用python玩转二维码!速学速用!⛵
作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://showmeai.tech/art ...
- 通过启动脚本控制PHP-FPM开关
vi /etc/init.d/php-fpm 复制粘贴以下内容: #! /bin/sh# Comments to support chkconfig on CentOS# chkconfig: 234 ...
- 谈谈我的「数字文具盒」 - NextCloud
接下来两篇主要谈论 Nextcloud 和 Obsidian,因为篇幅较长,所以单出罗列出来.本文主要介绍 Nextcloud 以及使用中的技巧和心得体会. Nextcloud Nextcloud 是 ...
- vuex的使用详解
一.下载vuex 在store文件夹下的index.js中 官方文档:https://vuex.vuejs.org/zh/ 需要使用的页面 sotre中 mutations的调用方法 store ...
- vue使用echarts引入离线地图(geo.json)并切换省市(以四川为例)
https://blog.csdn.net/weixin_43374193/article/details/95594419 https://blog.csdn.net/harrisonz8/arti ...
- Flask 终端启动运行
在终端启动 1.首先创建xxxx.py文件(xxxx表示创建的文件名)写入一个小app实例,例如: # 在hello.py文件下创建一个小的FLask app from flask import Fl ...
- java计算器༼༎ຶᴗ༎ຶ༽༼༎ຶᴗ༎ຶ༽༼༎ຶᴗ༎ຶ༽༼༎ຶᴗ༎ຶ༽,又是掉发的一天
题目: 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() . 示例 1: 输入:s = " ...
- Flink mini-batch "引发" 的乱序问题
问题描述 近期业务反馈, 开启了 mini-batch 之后, 出现了数据不准的情况, 关掉了 mini-batch 之后, 就正常了, 因此业务方怀疑,是不是 Flink 的 mini-batch ...