Day 3 Math

这篇具有很好参考价值的文章主要介绍了Day 3 Math。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

A. CF1845E Boxes and Balls

\dzy/ 强大 \dzy/

注意到球之间的相对位置不会改变,设 x i x_i xi 为初始状态第 i i i 个球的位置, y i y_i yi 为末状态位置,那么移动的最少步数是 ∑ ∣ y i − x i ∣ \sum |y_i - x_i| yixi,实际移动步数可能是 ∑ ∣ y i − x i ∣ \sum |y_i - x_i| yixi 加上一个偶数,即来回移动而不改变状态。

f ( i , j , s ) f(i,j,s) f(i,j,s) 表示前 i i i 个盒子,放了 j j j 个小球,前 i i i 个盒子 ∑ \sum 值为 s s s 的方案数,有 f ( i , j , s ) = f ( i − 1 , j , s ) + f ( i − 1 , j − 1 , s + ∣ i − a j ∣ ) f(i,j,s) = f(i-1,j,s) + f(i-1,j-1,s+|i-a_j|) f(i,j,s)=f(i1,j,s)+f(i1,j1,s+iaj)

最后的答案为 ∑ f ( n , t o t , k ′ ) \sum f(n,tot,k') f(n,tot,k) k ′ k' k 即为 k k k 减去一个偶数。

这样是 O ( n 2 k ) O(n^2k) O(n2k) ,空间可以滚掉一维,考虑时间优化。

s u m i sum_i sumi 表示初始状态前 i i i 个盒子中的小球数量。

在枚举 j j j 的时候,前 i i i 个盒子里放的小球数量和初始状态相差 ∣ s u m i − j ∣ |sum_i-j| sumij 个。以 s u m i > j sum_i>j sumi>j 为例,那么对于这些多出来的小球,就算移到后面几个最近的箱子,也需要 ( s u m i − j ) 2 (sum_i-j)^2 (sumij)2 步,因此枚举 j j j 的时候可以划小范围到一个 K \sqrt K K 级的范围。记录

B.CF1842G Tenzing and Random Operations

\wzr/ \wy/

确实顶,组合意义。

0 0 0 n n n n + 1 n+1 n+1 个点, n n n 条路, i i i 条路有 a i a_i ai 种方案, ∏ a i \prod a_i ai 就是到 n n n 的方案数。修改操作就是路上随机给一些工具,工具 两两不同,使用工具可以给你 v v v 种额外方案。

先不考虑期望,考虑方案数,最终的期望就是所有情况方案数之和除个 n m n^m nm

d p i , j dp_{i,j} dpi,j 表示到第 i i i 个,使用了 j j j 个工具的方案数。

转移:

  • 不使用工具: d p i − 1 , j × a i dp_{i-1,j} \times a_i dpi1,j×ai
  • 使用用过的工具:使用的是哪一个有 j j j 种可能: d p i − 1 , j × j × v dp_{i-1,j} \times j \times v dpi1,j×j×v
  • 使用没有用过的工具: 来的地方有 i i i 种可能,使用的是哪一个有 ( m − j + 1 ) (m-j+1) (mj+1) 种可能: d p i − 1 , j − 1 × i × ( m − j + 1 ) × v dp_{i-1,j-1} \times i \times (m-j+1) \times v dpi1,j1×i×(mj+1)×v

对于 d p i , j dp_{i,j} dpi,j 在计算总方案数时记得考虑 m − j m - j mj 个没使用的工具的可能性,即 ∑ j = 0 min ⁡ ( n , m ) ( d p n , j × n m − j ) \sum\limits_{j=0}^{\min(n,m)} {(dp_{n,j} \times n^{m-j})} j=0min(n,m)(dpn,j×nmj),乘上 1 n m \frac {1} {n^m} nm1 就是期望。记录

C. CF1838E Count Supersequences

给定了都是 [ 1 , k ] [1,k] [1,k] 之间的数,从匹配的角度,只有匹配与不匹配,也就是 1 1 1 k − 1 k-1 k1 ,与 a a a 具体无关。

反着做,考虑只能匹配 i i i 位的方案数 f i f_i fi,首先确定每一位第一次匹配到的位置,因为是第一次, [ i , i + 1 ) [i,i+1) [i,i+1) 之间就不能和 a i + 1 a_{i+1} ai+1 相同,每一个 i , i + 1 i,i+1 i,i+1 段都是这样,因此 f i = ( m i ) ( k − 1 ) m − i f_i = \dbinom {m}{i}{(k-1)}^{m-i} fi=(im)(k1)mi,答案就是 ∑ i = 0 n f i \sum\limits_{i=0}^n f_i i=0nfi。注意到组合数只用求 m m m i i i ,可以递推。注意取模。记录

D. CF1843E MEX of LCM

I. n + 1 n+1 n+1 个质数一定可以作为答案,因此答案一定小于这个数。因此答案值域有上界 V ≈ 4.5 × 1 0 6 V\approx4.5 \times 10^6 V4.5×106

II. 固定左端点,移动右端点,若 lcm 变化则至少变两倍,因此固定左端点至多 log ⁡ V \log V logV 种,可以倍增 log ⁡ n \log n logn 找出来第一个发生变化的 lcm。

III. 对于区间 lcm ,可以 st 表预处理。

枚举左端点,二分找下一个 lcm 变化点,时间复杂度 O ( n log ⁡ n log ⁡ V ) O(n \log n \log V) O(nlognlogV)。这种做法一开始一直 TLE on 25,后来加特判才过。记录

发现这样做本质还是为了 lcm 不重复出现,想到 STL 里面的 set,这样的 set 元素至多 log ⁡ V \log V logV 个。从右往左枚举左端点 l l l(或者从左往右枚举右端点),维护区间左端点为 l l l 的集合,可以通过 l + 1 l+1 l+1 的集合元素与 a l a_l al 做 lcm 得到。记录

E. CF1830C Hyperregular Bracket Strings

满足区间性质的是个卡特兰数,然后拆区间哈希什么的,不想搞了。文章来源地址https://www.toymoban.com/news/detail-560875.html

到了这里,关于Day 3 Math的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023蓝桥杯大学A组C++决赛游记+个人题解

    发烧了一晚上没睡着,感觉鼻子被打火机烧烤一样难受,心情烦躁 早上6点起来吃了个早饭,思考能力完全丧失了,开始看此花亭奇谭 看了六集,准备复习数据结构考试,然后秒睡 一睁眼就是下午2点了 挂了个毛概课串讲,点了个外卖,吃完又睡着了 醒来就晚上8点了 然后又

    2024年02月08日
    浏览(89)
  • 前端——bootstrap响应式网页制作-星游记主题(大作业+源码)

    在b站上看见了童年神作的续集(虽然是个人自制) 作品:【自制星游记续】十年后,我们再飞行!!! 【自制星游记续】十年后,我们再飞行!!!_哔哩哔哩_bilibili 六一快乐,伙伴们。部分BGM来自:北京来的狼,鹿泊言{其实还有举杯邀酒请孤独,老杯做了很多动画bgm,很

    2024年02月11日
    浏览(47)
  • USACO24Bronze 游记兼 TJ All in Once

    我没有其他组别的号了。所以只能写 Bronze 的游记了。 如果行的话,下一次我会写 Silver 的。 一开始看了看三道题,T1T2 感觉都很不可做,直奔 T3。 一看 T3(Bessie 很 nb,会各种各样的东西,会科学,会魔法,今天我们发现她会分身术),不就是个二分吗?秒杀。 好的,现在

    2024年02月19日
    浏览(39)
  • sakuya726's 2023 ICPC China SiChuan Provincial Programming Contest(ICPC2023四川省赛)游记随笔

    出发前一天,收拾东西做好准备工作。打印了自己记忆中所有高级数据结构的板子(然而实际上并没有卵用),VP一把往年的四川省赛。 不出意外的失眠了,早上九点四十的火车,凌晨五点才睡觉。七点半出发去火车站,天还下着雨,刚开始感觉还挺有意境,然后当我在雨中

    2024年02月07日
    浏览(65)
  • c#中的Math.Ceiling和Math.floor()和Math.Round()

    Math.Ceiling(),只要有小数就加1(小数部分不为0) 例如: 2.Math.Round(),四舍五入取偶 四舍五入取偶意思的意思就是,针对于5到底入不入。如果把5入进去整数为偶数则入,若是奇数则不入。这样说如果不太理解,看下面的例子应该就会很容易理解了。 例如: 3.Math.Floor(): 总是舍去

    2024年02月15日
    浏览(59)
  • Math类,Array类

    Math的方法大都是静态的可以直接引用 random随机生成a-b之间的数 Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索) 定制排序 Comparator接口,里有一个compare方法 原码分析,看调用哪个方法。 asList将一组值转换成list 编译类型,运行类型 Array练习

    2023年04月12日
    浏览(33)
  • Cesium中Math介绍

    Cesium从入门到项目实战总目录: 点击 Cesium中包含了许多数学计算方法,用于处理地球表面的坐标转换、距离计算、矩阵变换等操作。下面是一些常用的Cesium数学模块和方法的介绍: Cesium.Math 模块:这是Cesium中最基本的数学模块,包含了许多常用的数学计算方法,例如: Ce

    2024年02月08日
    浏览(60)
  • Math简单学习

    1.绝对值 就变个符号 2.取整 1.向上取整 ceil 按自然顺序进行取整的 注意这里的返回值还是double 2.向下取整 小于等于他的最大整数 3.四舍五入 4.比大小

    2024年02月11日
    浏览(25)
  • JS之Math

    一提到数学,就想到被数学支配的噩梦,只不过这个数学用在了代码当中,那么代码当中的数学对象又是什么样的呢?让我为大家简单介绍一下吧! 数学对象常用方法: 常用方法 简述 ceil 向上取整 floor 向下取整 round 四舍五入 max 找最大值 min 找最小值 random 生成 0 ~ 1 之间的

    2024年01月22日
    浏览(23)
  • java导入数学(Math)包

    求绝对值 求一个数的开放 学的不是技术,更是梦想!!!

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包