2.9 CW 练时记录

news/2025/2/12 15:01:27/文章来源:https://www.cnblogs.com/YzaCsp/p/18706156

前言

新的类型, 跟考试放的差不多的策略就行了

后面就是找时间复习, 然后找一下状态就好了

\(\rm{F}\)

看到这是个 \(\rm{C}\) 题, 先做这个

思路

给定 \(p_{i, c}\) 表示位置 \(i\) 是字符 \(c\) 的概率, 确定 \(\displaystyle\sum_{c = 1}^{t} p_{i, c} = 1\)
一个有效的信息被定义为任意长度为 \(k\) 的子序列都在集合 \(\mathbb{D}\) 中出现
求一个有效的信息 \(m_1m_2m_3m_4\cdots m_n\) , 使得 \(\displaystyle \prod_{i = 1}^{n} p_{i, m_i}\) 最大

想了一会只想出了暴力

想了一会搞了一个类似于模拟的做法

首先我们把 \(\mathbb{D}\) 中的串串丢进字典树上, 对于每一个串串, 我们不难处理出其后缀串串的下一个位置, \(\rm{belike}\):
pEm5rE4.png

这样我们能递归的构造信息, 每次选取的时候按照概率从大往小选即可

唯一的问题变成了一些分支最终是无解的
如果深搜就会超时, 发现贪心也是错误的

不太会, 想的方法太复杂先丢了

\(\rm{D}\)

瞎开

思路

求最长子序列使得子序列的前半部分和后半部分相同, 并输出, 接受 \(\mathcal{O} (n^2)\) 上下的复杂度

初步的想法是 \(\mathcal{O} (n)\) 划分两个子序列, 然后 \(\mathcal{O} (n)\) 找最长公共子序列

但是 \(\mathcal{O} (n)\) 找最长公共子序列怎么做, 根本没法做

为了优化时间复杂度, 可以将最长公共子序列问题转化为最长上升子序列问题
具体思路是: 统计数组 \(a\) 中的每个元素在数组 \(b\) 中出现的位置, 并按从大到小排序; 然后对这些位置求最长上升子序列, 时间复杂度为 \(\mathcal{O}(n\log n)\)

所以退而求其次, 写 \(\mathcal{O} (n^2 \log n)\) 也没什么不好的

但是发现也实现不了, 不难发现这种移动分界线问题, 肯定是靠你 \(\rm{dp}\) 去除重复操作来做的
所以思路很明晰, 问题转化为, 如何在分界线移动时均摊的求出当前的最长公共子序列

开始的时候把序列翻转记为 \(b\) , 空序列记为 \(a\)
不难发现, 每次操作相当于把 \(b\) 末尾的字母剪切到 \(a\) 里, 更新 \(\rm{dp}\) 数组

假设 \(a\) 当前的长度为 \(i\) , \(b\) 当前的长度为 \(j\) , 存在 \(dp_{i, j}\)
移动后 \(a\) 当前的长度为 \(i + 1\) , \(b\) 当前的长度为 \(j - 1\) , \(dp_{i, j}\) 废除无效, 但是 \(dp\) 数组中其他部分仍然成立

因此只需要更新 \(dp_{i + 1, j - 1}\) , 一般的

\[\begin{align*} dp_{i + 1, j - 1} \gets \begin{cases} \textrm{case } a_{i + 1} = b_{j - 1} \textrm{ , } dp_{i, j - 2} + 1 \\ \textrm{case } a_{i + 1} = b_{j - 1} \textrm{ , } \max (dp_{i + 1, j - 2}, dp_{i, j - 1}) \end{cases} \end{align*}\]

最终 \(j = 1, i = n - 1\) 时就可以结束了

然后你发现删的是前缀不能这么做

不会, 丢了

\(\rm{B}\)

过的人多, 开

思路

找一下规律发现叠加 \(k\) 有周期性

例如

\[1010 \to 10100 \to 11110 \to 101000 \to 110010 \to 111100 \to 1000110 \to 1010000 \to 1011010 \to 1100100 \]

但是写不了

考虑二进制下类似数位 \(\rm{dp}\) 的做法, 这样稍微复杂度正确一点

相当于记录当前的位数, 之前的 \(1\) 的个数, 对应十进制的值对 \(k\) 取模的值
如何 记忆化 / 剪枝 , 如果我们从高位到低位放, 当前高位对应是背倍数, \(\cdots\)

考虑设计状态 \(f_{p, i, m}\) 表示当前的位数, \(1\) 的个数, 当前的余数 出现了多少次

考虑转移, 从低位到高位考虑

\[\begin{align*} f_{p, i, m} \gets \begin{cases} f_{p - 1, i, m} \\ f_{p - 1, i - 1, (m - 2^p \textrm{ mod } k + k) \textrm{ mod } k} \end{cases} \end{align*}\]

实现中应当使用刷表法更简便

数据检验, 懒得检验, 应当是对的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/881240.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SMU2025寒假训练周报2

这周状态其实不太好,很多时候心急总是卡简单题,中档题也有些难a,希望尽快调整 一.个人训练赛2 1. Linova and Kingdom 题目链接:Problem - C - Codeforces 每加一个点总体贡献就可能发生变化,那我们就处理每个点的贡献,将他的深度减去他孩子的总个数就是贡献,最后排序取…

无需服务器个性化域名重定向到其他网站

1. 准备工作 1. 申请个人域名免费方式:从 ClouDNS.net上创建账号申请即可,右上角可以选择中文。如果实在不会操作,可以参考:教你免费注册一个ClouDNS永久域名(保姆级教程) ,还可以自行搜索或问大模型或留言。 付费方式:从 主流域名注册商注册,国外:namesilo 比较便宜,…

在GitHub上部署个人静态网站

在GitHub上部署个人静态网站 首先将网站设置文件上传到github的一个新建仓库,并公开仓库(会员可不用公开)找到settings(设置)-page(页面)选项并进入 选择分支(root)并save等待一段时间(5分钟左右),重新进入该仓库的pages 已经生成网址点击网址或者Visit site进入网站…

使用nvm管理node版本

1、下载安装 NVM:https://github.com/coreybutler/nvm-windows2、下载完成后,解压缩nvm-setup.zip文件到您想要安装 NVM 的目录,双击nvm-setup.exe进行安装 3、配置环境变量,将安装目录添加到path环境变量PS C:\Users> nvm -v 1.2.24、查看可用的 Node.js 版本: 5、选择…

Cursor从0到1:让每个人都会编程

Cursor 可谓是最近最火的 AI 代码类应用之一。它结合了传统编辑器的功能(如 VS Code 的体验)与 AI 驱动的智能编程能力,旨在提升开发效率和代码质量。一、关于Cursor 1.1 简介 Cursor 是一款基于人工智能(AI)的现代化代码编辑器,专为开发者设计。它结合了传统编辑器的功能…

销售就是推销自己

销售的本质是顾客用钱买满足自己需求的卖方提供的产品。销售员就承担着桥梁的角色。渠道那么多,销售人员那么多,顾客为什么要通过你来买? 优秀的销售人员(商人)有下面几个特点。 1.自信 如果你相信你会成功,成功便会发生;如果你相信你会失败,失败便会找上门。无论如何我…

Snipaste - 截屏软件

qq截屏闪退,故更改软件————下载https://www.snipaste.com/download.html选择对应版本 下载后双击即可(默认F1截屏) 参考: https://blog.csdn.net/m0_64979660/article/details/142353087

红蓝对抗之系统密码提取

mimikatz mimikatz工具从内存中提取明文密码,HASH值,PIN密码和票据,利用zerologon漏洞(通过NetLogon/MS-NRPC协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码设置为空。 mimikatz 需要管理员或 SYSTEM 权限,通常使用 DEBUG 权限执行某些操作,与 LSASS…

wsl启动报错Cannot execute daemonize to start systemd的解决方法

WSL 启动报错 "Cannot execute daemonize to start systemd" 的解决方法 问题背景 在启动 WSL2 时遇到以下错误: Cannot execute daemonize to start systemd解决思路来源:https://github.com/DamionGans/ubuntu-wsl2-systemd-script/issues/37此错误通常是因为 dae…

2.2-2.9做题笔记

2.2 - 2.9 做题笔记 最近一周做的所有题目,包括 cyezoj 上的模拟赛,专题作业和 ABC。 2.4 CYEZ SHOI2025 模拟测试七 CYEZ 404 过桥 题目难度:省选 D1T1 赛时:20pts ;订正:100pts 大意 有 \(n\) 个人要过一座每次最多容 \(c\) 人通过、且仅有一只手电的一座桥。多人同时过…

【烂笔头系列】计算广告笔记16-其他广告相关技术

创意优化 创意需要将向用户推送广告的关键原因明确表达出来 程序化创意地域性创意 搜索重定向创意 个性化重定向创意电机热力图电机热力图是将某一个创意各位置被点击的密度用热力图方式呈现,帮助创意优化者直观的发现和解决其中的问题创意的发展趋势视频化激励视频形式交互化…

【烂笔头系列】推荐系统笔记10-经典深度学习推荐模型

特征组合和特征交叉问题非常常见,特征的种类非常多,特征交叉的复杂程度也要大得多。解决这类问题的关键,就是模型对于特征组合和特征交叉的学习能力,因为它决定了模型对于未知特征组合样本的预测能力,而这对于复杂的推荐问题来说,是决定其推荐效果的关键点之一。 那特征交…