DTOJ#4170. 「PKUWC2018」猎人杀

2024-03-08 23:48
文章标签 pkuwc2018 猎人 dtoj 4170

本文主要是介绍DTOJ#4170. 「PKUWC2018」猎人杀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:

猎人杀是一款风靡一时的游戏“狼人杀”的民间版本,他的规则是这样的:

一开始有 n n n 个猎人,第 i i i 个猎人有仇恨度 w i w_i wi ,每个猎人只有一个固定的技能:死亡后必须开一枪,且被射中的人也会死亡。

然而向谁开枪也是有讲究的,假设当前还活着的猎人有 [ i 1 … i m ] [i_1\ldots i_m] [i1im],那么有 w i k ∑ j = 1 m w i j \frac{w_{i_k}}{\sum\limits_{j = 1}^{m} w_{i_j}} j=1mwijwik 的概率是向猎人 i k i_k ik 开枪。

一开始第一枪由你打响,目标的选择方法和猎人一样(即有 w i ∑ j = 1 n w j \frac{w_i}{\sum\limits_{j=1}^{n}w_j} j=1nwjwi 的概率射中第 i i i 个猎人)。由于开枪导致的连锁反应,所有猎人最终都会死亡,现在 1 1 1 号猎人想知道它是最后一个死的的概率。

答案对 998244353 998244353 998244353 取模。
题解:
考虑对于每一次开枪,要知道当前存活的人,才能知道概率,这样需要状压记录状态,显然不可行。于是考虑是否能将每次开枪看作可以选所有人,这样要考虑若选到已死的人,肯定不能照常,而是要继续选,直到选到未死的,这样就和原来的操作一样了。对于计算1号最后死的概率,直接算肯定不好算,故考虑容斥掉不合法的概率,枚举在它后面死的至少有i人,设 ∑ i = 1 n w i = A \sum\limits_{i=1}^{n}w_i=A i=1nwi=A,i后面死的人的w和为s,于是有: a n s = ∑ i = 1 n ( − 1 ) i ∗ w 1 A ∗ ∑ j = 0 ∞ A − s − w 1 A ans=\sum\limits_{i=1}^{n}(-1)^{i}*\frac{w_1}{A}*\sum\limits_{j=0}^{\infty}\frac{A-s-w_1}{A} ans=i=1n(1)iAw1j=0AAsw1,化简得 ∑ i = 1 n ( − 1 ) i ∗ 1 s + w 1 \sum\limits_{i=1}^{n}(-1)^{i}*\frac{1}{s+w_1} i=1n(1)is+w11,发现式子的变量是s,又注意到数据范围,A<=1e5,考虑对于每一个相同的s,计算出它的容斥系数,于是就按套路,对于每一个猎人,将其看成一个多项式 x w i − 1 x^{w_i}-1 xwi1,所有猎人卷积的每一项系数即是s的容斥系数,分治NTT求解即可。

这篇关于DTOJ#4170. 「PKUWC2018」猎人杀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788822

相关文章

《全职猎人》

《全职猎人》 [1-2]是日本漫画家富坚义博的作品。 1999年版改编电视动画由日本动画公司负责动画制作,于1999年10月16日-2001年3月30日在富士电视台播出,该动画的故事至贪婪之岛篇章结束,全92话。 该作在富坚义博老师天马行空的想象力下为读者打造了一个奇妙的幻想世界,讲述了主人公小杰寻父道路上与朋友一起经历的各种冒险。 相关星图 查看更多 日本漫画《全职猎人》及其衍生作

Python爬虫入门:网络世界的宝藏猎人

今天阿佑将带你踏上Python的肩膀,成为一名网络世界的宝藏猎人! 文章目录 1. 引言1.1 简述Python在爬虫领域的地位1.2 阐明学习网络基础对爬虫的重要性 2. 背景介绍2.1 Python语言的流行与适用场景2.2 网络通信基础概念及其在数据抓取中的角色 3. Python基础3.1 Python语言概述3.1.1 Python的历史与设计理念3.1.2 特性:简洁性、

【论文复现|智能算法改进】改进猎人猎物优化算法在WSN覆盖中的应用

目录 1.算法原理2.改进点3.结果展示4.参考文献 1.算法原理 【智能算法】猎人猎物算法(HPO)原理及实现 【智能算法应用】猎人猎物优化算法(HPO)在WSN覆盖中的应用 2.改进点 差分进化 自适应α变异 全局最优引导的动态反向学习 3.结果展示 4.参考文献 [1] 杨乐,张达敏,何庆,等.改进猎人猎物优化算法在WSN覆盖中的应用[

2965: 寻宝猎人(贪心)

2965: 寻宝猎人 题目描述 寻宝猎人Tom发现了一处宝藏,宝藏为一个N * M 的矩阵组成,矩阵的每一个点都包含一个钱袋,钱袋中装有若干金币。现在Tom只想从这个矩阵中拿走一块 3 * 3 的矩阵,请问他能拿走的最大金币数量。 输入 第一行输入两个整数N和M,表示矩阵的长和宽。 接下来N行,每行M个整数,表示钱袋中金币的数量。 3<= N , M <= 200 0<= 钱袋中金币数量 <=

编程之美4.7蚂蚁爬杆扩展问题附猎人抓狐狸(必胜策略)

4.7节讲的是一根长27cm的木棍上,在5个点上有5只蚂蚁,蚂蚁在开始的时候朝任意方向出发,只能掉头或者往前走。让任意两只蚂蚁碰头时,它们同时掉头朝反方向走。假设蚂蚁的速度都是一秒一厘米,求蚂蚁都离开木棍的最短时间和最长时间。     穷举很麻烦,书上的思路非常精巧,即把蚂蚁碰头后掉头走,看做两个蚂蚁相遇后擦肩而过。这样就可以把蚂蚁的运动看做是独立的,是否碰头并不重要。代码也很简单,不过

大水题:兔八哥与猎人(C++)

题目: Description 兔八哥躲藏在树林旁边的果园里。 果园有M*NM∗N棵树,组成一个MM行NN列的矩阵,水平或垂直相邻的两棵树的距离为11。 兔子在一棵果树下。 猎人背着猎枪走进了果园,他爬上一棵果树,准备杀死兔八哥。 如果猎人与兔子之间没有其它的果树,猎人就可以看到兔八哥。 现己知猎人和兔子的位置,编写程序判断兔八哥所在的位置是否安全。 Format Input

重生之我是赏金猎人(一)-轻松GET某src soap注入

0x00 项目背景 该系列旨在分享自己和团队在SRC、项目实战漏洞测试过程中的有趣案例,如果读者能从本项目习得一些有用的知识,那么笔者将非常荣幸。 该系列首发github:https://github.com/J0o1ey/BountyHunterInChina 本项目由M78sec维护,未经授权,文章严禁私自修改版权转载。 0x01 背景 在对某 SRC 测试时,本人根据其证书信息收集到

荣耀猎人游戏本发布!“我就是我颜色不一样的烟火”

9月16日,荣耀在北京举办的2020秋季新品发布会中,众多游戏玩家所期待的荣耀猎人游戏本正式发布。作为2020年最为期待的游戏本,可以说荣耀猎人走出来一条属于自己的,献给年轻人的道路。    传统游戏本,一般都比较厚重,轻薄在技术限制的情况下为了满足散热需求,只能“牺牲“。而荣耀猎人游戏本的机身厚度薄至19.9mm,达到了轻薄本的厚度,要知道万元游戏本的机身厚度基本处于25mm至27mm区间内。

SRC学习-成为赏金猎人

你是否对漏洞挖掘充满好奇?零基础或有基础但想更进一步?想赚取可观的漏洞赏金让自己有更大的自由度? 那么,不妨了解下土拨鼠的安全屋 这或许也是你成为漏洞赏金猎人的第一课。 逻辑漏洞挖掘手法与创新思路,带你突破传统漏洞挖掘模式! 独家SSRF专属挖掘教程,揭秘挖掘SSRF漏洞的独门技巧! 国内外资产信息收集技巧,助你成为资产信息收集领域的高手!

DTOJ 2937. Sum of LCM

题意: 对于 A 1 , A 2 , … , A N A_1, A_2, \ldots, A_N A1​,A2​,…,AN​ ,求 ∑ i = 1 N ∑ j = 1 N l c m ( A i , A j ) \sum_{i = 1}^N \sum_{j = 1}^N \mathrm{lcm}(A_i, A_j) ∑i=1N​∑j=1N​lcm(Ai​,Aj​) 的值。 l c m ( a