DTOJ 4781. 抗疫斗争

2024-03-08 23:18
文章标签 抗疫 斗争 dtoj 4781

本文主要是介绍DTOJ 4781. 抗疫斗争,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

新冠疫情爆发以来,病毒不断地扩散传播,而人类也在不断采取各种措施遏制病毒传播。于是我们可以为这场抗疫斗争建立一个数学模型,将病毒的不断传播和人类的不断采取措施抽象为一场双方轮流行动的博弈。我们认为人类与病毒的每轮行动都可以选择一个正整数作为行动值来评估。然而,出于各方面限制,双方的所有行动值总和必须等于一个数 m m m,且每次的行动值不能超过对方上轮的行动值。对人类来说,要遏制疫情,就应成为最后行动的一方,也就是说,在本方的某次行动后,行动值总和 m m m 恰好被消耗完。

假设人类先行动,那么我们只需一鼓作气消耗完所有 m m m 点行动值,就能战胜病毒。然而在最开始的阶段出于认识不到疫情的严重性,往往最难开展大规模行动。出于这个原因,我们令 h m h_m hm 表示在行动值总和为 m m m 的情况下,人类(即先行动方)的第一次行动最少要多少行动值,才能保证自己必胜。

出于统计需要,某科学家记 f i = ∑ m ∣ i h m f_i=\sum_{m|i} h_m fi=mihm,并想知道 ∑ i = 1 n f i \sum_{i=1}^{n} f_i i=1nfi。方便起见,对 998244353 998244353 998244353 取模。你能帮个忙吗?

子任务编号$n\le $分值
1 1 1 3 3 3 1 1 1
2 2 2 1000 1000 1000 9 9 9
3 3 3 1 0 5 10^5 105 31 31 31
4 4 4 1 0 11 10^{11} 1011 28 28 28
5 5 5 5 × 1 0 13 5\times 10^{13} 5×1013 26 26 26
6 6 6 1 0 15 10^{15} 1015 5 5 5

题解

首先容易猜想并用归纳法证明 h m = 2 l o w b i t ( m ) − 1 h_m=2^{lowbit(m)-1} hm=2lowbit(m)1,于是枚举 2 i 2^i 2i,它对每个倍数 f f f值的贡献都是 2 m a x ( i − 1 , 0 ) 2^{max(i-1,0)} 2max(i1,0)(本来想的是只对奇数倍数贡献 2 i 2^i 2i,但这样也是对的并且形式比较优美),直接数论分块的效率就是 O ( s q r t ( n ) ) O(sqrt(n)) O(sqrt(n))的,但常数略大过不去。

有一个比较神奇的做法,考虑转移到坐标轴上,即为反比例函数在第一象限与 x , y x,y x,y正半轴围成的部分的整点数。发现可以这个部分与直线 y = x y=x y=x对称比较优美,可以把它分为左下角为顶点,边长为 s q r t ( n ) sqrt(n) sqrt(n)的正方形与两个全等三角形,于是暴力枚举前 s q r t ( n ) sqrt(n) sqrt(n)的答案,乘上2再减去正方形即可。

这篇关于DTOJ 4781. 抗疫斗争的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

爬虫学习--18.反爬斗争 selenium(3)

操作多窗口与页面切换 有时候窗口中有很多子tab页面。这时候肯定是需要进行切换的。selenium提供了一个叫做switch_to.window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到。 from selenium import webdriver from selenium.webdriver import ActionChains fro

春节宅家,代码抗疫

在学校,受师兄影响,一般会在每天晚上记录一下这一天的工作,回到家里,就闲下了,在新型冠状肺炎——这个不一般的春节里面记流水账一般地记录了慢慢步入正轨地春节生活,一直到前两天才满满找回学习地感觉,其实在家和在学校是一样的,早上起床吃个饭开始写代码,中午吃个饭休息一下继续写代码,不一样的是晚上陪陪父母跳跳健美操活动一下筋骨,早上可能赖会床。 2.3 今天刷牛客网的题,主要是剑指Offer的习题,晚上

与脚气和灰指甲的斗争历程

这篇文章,注定是一篇有味道的文章。前方高能,正在吃饭或者吃零食的,请绕道!!!这是我彻底根治脚气和灰指甲的一场斗争历程,记录一下,也算一个科普吧。 背景 说起脚气,应该是自初中开始就有了吧,平时抓一抓也就过去了,实在痒的时候,就喷一下唯达宁或者涂一下达克宁,反反复复,感觉就像是永远无法根除一样,但是也没有特别当回事。 去年三月的时候,发现脚指甲开始发灰,感觉很像「灰指甲」,在女朋友的催

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

DTOJ#4170. 「PKUWC2018」猎人杀

题意: 猎人杀是一款风靡一时的游戏“狼人杀”的民间版本,他的规则是这样的: 一开始有 n n n 个猎人,第 i i i 个猎人有仇恨度 w i w_i wi​ ,每个猎人只有一个固定的技能:死亡后必须开一枪,且被射中的人也会死亡。 然而向谁开枪也是有讲究的,假设当前还活着的猎人有 [ i 1 … i m ] [i_1\ldots i_m] [i1​…im​],那么有 w i k

DTOJ #4235. 交朋友

题意: 给定一个n个点m条边的有向图,对于同一个点连向的两个点可以互相连双向边,求图中最多有几条边。 题解: 直观地想,首先对于每一个点,若它的出度大于1,则它连向的边为一个完全图,但每个点做完后又会产生影响,因此没法保证效率。 发现“对于同一个点连向的两个点可以互相连双向边”这个条件类似于并查集,即把双向边视为无向边,这样恰好满足了并查集的性质。 因为原始的边不在并查集的考虑范围内,故用原始的边

(CSP2019模拟)DTOJ 4644. speike

题意 众所周知,Speike 狗是一条特别喜欢追着Tom 打的狗。 现在,Tom 又把Speike 惹生气了,现在Speike 需要跨越千山万水找Tom 报仇。 Speike 所在的世界可以看成是一个无穷大的平面,平面由一个平面直角坐标系确定。在平面上有许多不相交的矩形障碍,矩形的四边平行于坐标轴。 Speike 需要从 ( 0 , 0 ) (0,0) (0,0) 出发,在尽量短的时间内

DTOJ 4538. 「TJOI / HEOI2016」排序

题意 在 2016 年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。 这个难题是这样子的:给出一个 $1 $ 到 n n n 的全排列,现在对这个全排列序列进行 m m m 次局部排序,排序分为两种: ( 0 , l , r ) (0, l, r) (0,l,r) 表示将区间 [ l , r ] [l, r] [l,r]

(CSP2019模拟)DTOJ 4629. 世界

题意 有一个虚无的结界,隔开了两个世界。 人们在结界内游荡,而远方的星辰在结界外。 我们可以把结界看作 x x x 轴,那么人们都在 x x x 轴下方,而星星都在 x x x 轴上方。 人们本应该能看到所有的星星,但是结界外( x x x 轴上方)出现了几座墙,挡住了人们的视线。墙是平行于 x x x 轴的。 现在想问,每个人分别能看到多少星星。 测试点编号 n n n m