当前位置: 首页 > news >正文

水题记录2.3

文章目录

    • CF822E Liar
    • luoguP14139 「SFMOI Round II」Strange Counting Game
    • CF912D Fishes
    • CF1810E Monsters
    • CF1374E2 Reading Books (hard version)
    • CF1919D 01 Tree
    • CF1380F Strange Addition
    • CF351C Jeff and Brackets

CF822E Liar

link

题目:

在这里插入图片描述

考虑朴素 DP,f[i,j]f[i,j]f[i,j] 表示 sssiii 位,切 jjj 段 能匹配 ttt 的前多少位。

转移考虑在 i−1i-1i1 位是否断开,不断则有 f[i,j]=f[i−1,j]f[i,j]=f[i-1,j]f[i,j]=f[i1,j]

否则有 f[i+x,j+1]=max⁡(f[i,j]+x)f[i+x,j+1]=\max(f[i,j]+x)f[i+x,j+1]=max(f[i,j]+x),其中 xxxsss 从第 iii 开始,ttt 从第 f[i,j]f[i,j]f[i,j] 位开始所匹配的最大长度。

那么这题就做完了。

luoguP14139 「SFMOI Round II」Strange Counting Game

link

题目:

T(T≤1000)T(T\le 1000)T(T1000) 次询问,对于 n≤1018n\le 10^{18}n1018,求:

∑x=1n⌊x2n⌋+⌊nx⌋\sum_{x=1}^{n} \left\lfloor \frac{x^2}{n} \right\rfloor + \left\lfloor \sqrt{nx} \right\rfloor x=1nnx2+nx

答案对 109+710^9+7109+7 取模。


拆式子:

考虑:

=∑x=1n⌊nx⌋=∑i=1n∑x=1n[⌊nx⌋≥i]=∑i=1n∑x=1n[x≥⌈i2n⌉]=∑i=1n(n−⌈i2n⌉+1)\begin{aligned} &\phantom{=}\sum_{x=1}^n \left\lfloor \sqrt{nx} \right\rfloor\\ &=\sum_{i=1}^n \sum_{x=1}^n[\left\lfloor \sqrt{nx} \right\rfloor\ge i]\\ &=\sum_{i=1}^n \sum_{x=1}^n[x\ge \left \lceil \frac{i^2}{n}\right\rceil]\\ &=\sum_{i=1}^n (n-\left \lceil \frac{i^2}{n}\right\rceil+1) \end{aligned} =x=1nnx=i=1nx=1n[nxi]=i=1nx=1n[xni2]=i=1n(nni2+1)

所以所求为:

n2+n−∑i=1n⌊i2n⌋−⌈i2n⌉n^2+n-\sum_{i=1}^n\left\lfloor \frac{i^2}{n} \right\rfloor-\left \lceil \frac{i^2}{n}\right\rceil n2+ni=1nni2ni2

后面那坨东西,在 n∣i2n|i^2ni2 时结果一样,否则贡献为 −1-11

所以等价于求 ∑i=1n[n∣i2]\sum_{i=1}^n[n|i^2]i=1n[ni2] 的数量。

考虑 n=∏i=1kpiain=\prod_{i=1}^kp_i^{a_i}n=i=1kpiai,则 n∣m2n|m^2nm2 一定满足 m=C⋅∏i=1kpi⌈ai2⌉m=C \cdot\prod_{i=1}^kp_i^{\left \lceil \frac{a_i}{2}\right\rceil}m=Ci=1kpi2ai

其中 CCC 为常数。

那么所求即为:
∏i=1kpiai∏i=1kpi⌈ai2⌉\frac{\prod_{i=1}^kp_i^{a_i}}{\prod_{i=1}^kp_i^{\left \lceil \frac{a_i}{2}\right\rceil}} i=1kpi2aii=1kpiai

等价地考虑 n=ab2(an=ab^2(an=ab2(a 不能写成 d2d^2d2 的形式 ))),那么所求即为 bbb

那么最终答案即为 n2+n+b−n=n2+bn^2+n+b-n=n^2+bn2+n+bn=n2+b

问题是,bbb 怎么求?

考虑枚举所有在 [1,106][1,10^6][1,106] 之间的质数,对 nnn 试除。

考虑剩下的 nnn

  • 111,无贡献。
  • 为某个大质数,无贡献。
  • 为某两个不相等的大质数相乘,无贡献。
  • 为某个大质数的平方,贡献为乘上那个大质数。

这点判断是容易的。

代码:

CF912D Fishes

link

考虑求贡献前 kkk 大的点。

这点是容易的,考虑 aia_iai 表示每一列会被捕的次数,bib_ibi 为行。

ai=min⁡(i,m−r+1)−max⁡(i−r+1,1)a_i=\min(i,m-r+1)-\max(i-r+1,1)ai=min(i,mr+1)max(ir+1,1)bib_ibi 同理。

那么 (i,j)(i,j)(i,j) 被捕的次数即为 ai⋅bia_i\cdot b_iaibi

aia_iai 排序后优先队列维护前 kkk 大即可。

代码:

CF1810E Monsters

link

考虑暴力,每次从一个 000 开始扩展。

优化:

当一个 000 能遍历到另一个 000,则以那个 000 为起点一定不优。

且有结论,每个点被遍历次数为 O(log⁡n)O(\log n)O(logn) 级别的。所以这样子就过了。

总时间复杂度为 O(nlog⁡2n)O(n\log^2n)O(nlog2n)

CF1374E2 Reading Books (hard version)

link

双倍经验

考虑先解决 kkk 的限制。

将书分类:

  • 000000 两人都不喜欢
  • 010101 Bob喜欢
  • 101010 Alice喜欢
  • 111111 两人都喜欢。

显然,维护 kkk 本可以在 111111010101加上 101010 的优先队列维护前 kkk 小。

但是这样子可能取出来的数量 ccc 并不等于 mmm

考虑调整。

c>mc>mc>m

那么只能将 010101101010 各一本替换成为 111,注意,是用时最长换用时最短。

c<mc<mc<m

两种情况:

  1. 111111101010010101
  2. 随便加入一本

看哪个代价小即可。

CF1919D 01 Tree

link

考虑每次可以将 x,x−1x,x-1x,x1 或者 x−1,xx-1,xx1,x 变成 x−1x-1x1,用优先队列模拟,贪心地每次变最大的即可。

或者考虑观察性质:合法的充要条件是只有一个 000,且每个非零元素左右两边第一个比其小的元素中至少有一个是其减去一。

CF1380F Strange Addition

link

DP,f[i]f[i]f[i] 表示考虑前 iii 位时的答案。

有转移:f[i]=(ai+1)f[i−1]+[ai−1=1](9−ai)f[i−2]f[i]=(a_i+1)f[i-1]+[a_{i-1}=1](9-a_i)f[i-2]f[i]=(ai+1)f[i1]+[ai1=1](9ai)f[i2]

写成矩阵形式:

[f[i]f[i−1]]=[ai+1[ai−1=1](9−ai)10]×[f[i−1]f[i−2]]\begin{bmatrix} f[i] \\ f[i-1] \end{bmatrix} =\begin{bmatrix} a_i+1 & [a_{i-1}=1](9-a_i)\\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} f[i-1]\\ f[i-2] \end{bmatrix} [f[i]f[i1]]=[ai+11[ai1=1](9ai)0]×[f[i1]f[i2]]

那么线段树维护总矩阵积,单点修改即可。

CF351C Jeff and Brackets

link

DP,f[i,j]f[i,j]f[i,j] 表示前 iiijjj 个左括号未匹配时的最小代价。

则有转移:

fi,j=fi,j+1+bi,j=0fi,j=min⁡(fi,j−1+ai,fi,j+1+bi),j>0\begin{gathered} f_{i, j}=f_{i, j+1}+b_i, j=0 \\ f_{i, j}=\min \left(f_{i, j-1}+a_i, f_{i, j+1}+b_i\right), j>0 \end{gathered} fi,j=fi,j+1+bi,j=0fi,j=min(fi,j1+ai,fi,j+1+bi),j>0

由于 a,ba, ba,b 的循环周期是 nnn ,故最多有效的未匹配的左括号是 nnn 个,多的话可以调整后面的顺序,使得其不比 nnn 大,显然不影响,所以只考虑 fi,0,fi,1,⋯,fi,min⁡(i,n)f_{i, 0}, f_{i, 1}, \cdots, f_{i, \min (i, n)}fi,0,fi,1,,fi,min(i,n) 即可。

那么写成矩阵形式:

[fi,0fi,1⋮fi,n]=[+∞bi+∞⋯+∞ai+∞bi⋯+∞+∞ai+∞⋯+∞⋮⋮⋱⋮⋱+∞⋯ai+∞bi+∞⋯+∞ai+∞][fi−1,0fi−1,1⋮fi−1,n]\left[\begin{array}{c} f_{i, 0} \\ f_{i, 1} \\ \vdots \\ f_{i, n} \end{array}\right]=\left[\begin{array}{ccccc} +\infty & b_i & +\infty & \cdots & +\infty \\ a_i & +\infty & b_i & \cdots & +\infty \\ +\infty & a_i & +\infty & \cdots & +\infty \\ \vdots & \vdots & \ddots & \vdots & \ddots \\ +\infty & \cdots & a_i & +\infty & b_i \\ +\infty & \cdots & +\infty & a_i & +\infty \end{array}\right]\left[\begin{array}{c} f_{i-1,0} \\ f_{i-1,1} \\ \vdots \\ f_{i-1, n} \end{array}\right] fi,0fi,1fi,n=+ai+++bi+ai+bi+ai++ai+++bi+fi1,0fi1,1fi1,n

矩阵快速幂优化即可。

http://www.dtcms.com/a/495587.html

相关文章:

  • Google Landmarks Dataset v2 (GLDv2):500万地标图像的识别与检索基准​(数据集概览、下载与使用全流程​)
  • 在设置feign请求的请求头透传(Header Propagation)时获取不到当前服务请求头的信息
  • 服装网站设计网站强制分享链接怎么做的
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)
  • WPF中的变换(Transform)功能详解
  • 北京做网站主机开通成功网站建设中
  • 工业显示器在微铣削机床中的应用
  • 合肥手机网站建设陕西网站建设平台
  • 东莞网站推广及优化平台营销策略
  • exp4j并发解决
  • 学习博弈本身过程脑是怎么看的?
  • 风险感知中枢:监测预警系统的架构与核心
  • 使用ROS2 + Qt编写一个简易计算器
  • 校园资料分享平台|基于SpringBoot和Vue的校园资料分享平台(源码+数据库+文档)
  • 企业花钱做的网站出现违禁词本地wordpress 手机浏览器
  • 网站建设最基础是什么广东网站建设服务商
  • 如何模仿一个网站云手机免费版无限挂机
  • Vue2 + Office Add-in关于用vue项目于加载项控制excel单元格内容(Demo版)
  • TS在Vue3中的使用实例集合
  • 储能技术适配绿电直连场景深度对比
  • React + Ant Design 日期选择器避免显示“Invalid Date“的解决方案
  • Vue 3 多实例 + 缓存复用:理念及实践
  • 手机网站自适应布局怎么做wordpress背景图片下载
  • Java基础——面向对象进阶复习知识点3
  • wordpress资讯站模板网站建设 智能建站
  • NoSQL介绍
  • 【实时Linux实战系列】FPGA 与实时 Linux 的协同设计
  • 可以做翻译兼职的网站wordpress icp链接
  • 【系统分析师】高分论文:数据库集群技术及应用
  • 西安知名高端网站建设服务企业郑州做系统集成的公司网站