CF1499
氵
如果 11 后出现了 00 就不行。
枚举走几段。
横竖可以分开算。
一定是:除了费用最小的都是走长度 \(1\),费用最小的包揽剩下的。
\(c\cdot lcm(a,b)-d\cdot gcd(a,b)=x\)
\(c\cdot \dfrac{a}{gcd(a,b)}\cdot \dfrac{b}{gcd(a,b)}=\dfrac{x}{gcd(a,b)}+d\)
\(gcd(a,b)\) 一定为 \(x\) 的因数,枚举 \(x\) 的因数。
把 \(\dfrac{\dfrac{x}{gcd(a,b)}+d}{c}\) 分解成两个互质的数的方案数累加进答案里去。
而分解成两个互质的数,就是对每一个质因子都选择去两边中的一边,有 \(2^{cnt}\) 中,\(cnt\) 是质因子个数。
而这个 \(2^{cnt}\) 可以用筛法的方式预处理。
给出俩字符串 \(a,b\),\(x\) 是 \(a\) 的子串,\(y\) 是 \(b\) 的子串;
\(x,y\) 可以用类似归并排序的方法把 \(x,y\) 的字符排到一个字符串里,使得 \(x,y\) 各自的字符相对顺序不变。
求和:对于所有 \((x,y)\) 的所有归并方法排得的字符串,有多少个相邻字符不同的字符串?(不同 \((x,y)\) 得相同结果只算一次)
定义 \(dp[i][j]\) 为对 \(a[1\sim i],b[1\sim j]\) 的后缀组合的求和。
意思就是 \(a[1\sim i]\) 的所有后缀和 \(b[1\sim j]\) 的所有后缀组合起来的答案的和。
最终输出 \(\sum\sum dp[i][j]\).
发现还不够,升一维:\(dp[i][j][0]\) 是在归并中以 \(a[i]\) 结尾的,\(dp[i][j][1]\) 是以 \(b[j]\) 结尾的。
若 \(a[i]\ne a[i - 1],dp[i][j][0]+=dp[i-1][j][0]\),但这种情况要注意:可能我们 \(a\) 的后缀选的是 \(a[i\sim i]\),所以我们要加上这种只选了 \(a[i]\) 的情况。
这种情况又分两种:① 如果 \(a[i]=b[j]\),这种情况不存在,因为 \(a[i]\) 接不了;② 否则就是查询 \(b[1\sim j]\) 中有多少个后缀相邻的不相等,这个也可以预处理。
若 \(a[i]\ne a[i - 1],dp[i][j][0]+=dp[i-1][j][1]\).
\(dp[][][1]\) 的计算同理:
若 \(b[j] \ne a[i],dp[i][j][1]+=dp[i][j-1][0],dp[i][j][1]+=a[1\sim i]\) 有多少个后缀相邻不相等。
若 \(b[j]\ne b[j - 1],dp[i][j][1]+=dp[i][j-1][1]\)
有多少种方式删掉一些边,使得树分成的连通分支的直径都 \(\le k\)?
随机推荐
- 国庆学go,完成了博客基本功能,迫不及待的发布上线了
大家好,我是沙漠尽头的狼. 国庆7天,利用带娃之余的空闲时间学习了go,并做了一个不是很完善的博客前台网站. 网站发布地址:https://go.dotnet9.com 源码 边做边上传Github, ...
- 【rt-thread】Kconfig文件添加子Kconfig文件时是以顶级Kconfig所在目录为当前路径的
示例如下 顶级Kconfig文件所在目录 子级Kconfig文件所在目录 子级Kconfig文件添加次子级Kconfig文件,以顶级目录为当前路径依次写出次子级Kconfig文件所在目录
- memtester 以及 mlc 简单学习
memtester 以及 mlc 简单学习 下载 memtester https://pyropus.ca./software/memtester/ 下载好后直接进行 make 和make insta ...
- 【转帖】基于官方rpm包方式安装Oracle19c
https://blog.whsir.com/post-5489.html 本文基于Centos7.x环境,通过官方提供的rpm包来安装19c 1.下载Oracle19c安装包 https://w ...
- [转帖]linux中top命令显示不全怎么解决
https://www.yisu.com/zixun/697775.html 这篇"linux中top命令显示不全怎么解决"文章的知识点大部分人都不太理解,所以小编给大家总结了以下 ...
- 银河麒麟(Ubuntu)无法上网问题的解决方法
最近部门借了几台银河麒麟的服务器. 因为有特殊用途, 不允许连接互联网,所以没办法只能搭建一个小的局域网进行处理. 但是发现在搭建过程中遇到了一些坑, 之前协助同事解决odoo问题时也遇到过, 当时本 ...
- 微软Windows Sever系统也将强制要求TPM及CPU兼容
https://www.cnbeta.com/articles/tech/1238647.htm 去年微软推出Win11系统时,TPM安全模块以及Intel 8代酷睿/AMD锐龙2代及以上的硬件要求引 ...
- Orika JavaBean映射工具使用
作者:京东零售 张宾 1.Orika是什么? Orika是一个简单.快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复制到另一个JavaBean,这在多层应用开发中是非常有用的 ...
- 插件时间格式处理moment如何使用
第1步下载插件 cnpm i moment -S 第2步 在main.js中去使用 在main.js中 注册全局过滤器 fmtdata是等会你用的 可以自定义 fmtdata直接可以调用.是一个过滤器 ...
- package.json中^,~的详细说明
场景描述 在package.json这个文件中,我们经常可以看见这样的信息 但是我们很少注意的是 版本前面的 ^ 到底是什么意思 今天我们就来讲一下(端好小板凳) "dependencies ...