CWOI 2025.3.26 模拟赛

news/2025/3/29 23:06:27/文章来源:https://www.cnblogs.com/xguagua/p/18794666

T3 忘了设初始值怒挂 15pts,本来还可以靠 95pts 挤进前八

问就是只改了这两道

T1 公约数神庙

赛时感觉写不出正解,所以直接写了个 Floyd 骗了 80pts 润了。

我们先特判掉几种情况:

  • \(l = r\),有解
  • \(a _ l = 1\)\(a _ r = 1\),无解
  • \(a _ l = 0\)\(a _ r = 0\),当存在 \(k \in [l,r],a _ k \gt 1\) 时有解

我们设 \(dp _ {i,p}\) 表示 \(i\) 后面最近的包含质因子 \(p\) 的位置,则我们的答案等价于 \(\bigvee dp _ {l,p _ r} \le r\)

转移比较简单,我们倒序枚举,每次记录一个 \(pre\),枚举 \(a _ i\) 的质因子,将 \(dp _ {i,k}\) 更新为 $ \min { dp _ {i,k},pre _ k }$,然后拿去更新 \(pre\) 就好了。

T3 城堡考古

\(m \le 6\),并且问方案数,明示状压(其实就是之前做过一道类似的题,那题是状压)。我们先想状压的状态,发现只有竖着放会对下面有影响,则状态 \(S _ i = 1\) 表示上一层需要向下延伸。

我们只需要判断两个相邻状态是否合法。发现,两个状态不能在同一位置都是 \(1\),并且剩下的相邻的 \(0\) 长度必须是偶数。

因此,我们可以设出一个 DP 的状态:\(dp_ {i,S}\) 表示考虑前 \(i\) 列,该列的状态为 \(S\) 的方案数。则 \(dp _ {i,S} = \sum dp _ {i - 1,fr(S)}\),其中 \(fr(S)\) 表示能转移到 \(S\) 的状态集合。

发现这个是线性变换,用矩阵快速幂优化一下就能得到 65pts 的好成绩(直接转移可以得到高达 15pts 的好成绩)。

我们发现,慢的原因是矩阵太大了,打个表可以发现,有用的状态不多,最多只有 \(20\) 个,因此可以用一遍 DFS 来求出有效状态,这样时间复杂度可以优化为 \(O((w = 21) ^ 3 \log 10 ^ {len})\),能过。

还有,出题人为什么一定要写个高精啊,虽然不难但是很烦欸。

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

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

相关文章

基于Grafana使用官方模版查询Prometheus数据

grafana配置Prometheus作为数据源选择一个模版,导入到dashboards 模板地址 https://grafana.com/grafana/dashboards/ 选择Prometheus,选择一个适应版本的模版,记录ID 例如:1860 11074 8919查看dashboards

计算机二级之C++专业知识①

前排提醒:做选择题的时候不能用编译器,只能用脑子想 里面标了⭕的是新内容,最好把这一段好好看看1、C++概述 1.1 比较C和C++ C++相对于C语言最更本的变化是引入了类与对象的概念(最大改进也是这个) 面向对象思想:具有封装性(封装了数据和操作)、继承性、多态性 类设计之…

git log 进入命令行后 退出的几种方法

git log 是git 中很有用的命令,会列出git的最近的操作内容,并且用 冒号来作为提示行。在 Git 命令行中,如果你看到 :,通常是因为你进入了一个查看器界面,比如 git log 或 git diff。要退出这个界面,你可以按下 q 键。以下是一些常见的退出方法: 退出查看器界面: 按 q 键…

OpenAI的GPT-4o:普通人的AI秘书来了

1. 惊艳时刻:AI比你想象的更"人性" 早餐时,张三正埋头刷推送,一篇关于OpenAI发布GPT-4o的文章瞬间点燃了他的好奇心。这个AI简直是科技圈的惊雷!竟然可以像真人一样说话、理解语境、实时交互,甚至能读懂你的情绪。这哪里还是以前那个机械的聊天机器人,简直就是…

搭建Node.js环境

Node.js安装配置详细教程 1.安装前检查自己电脑上是否安装node.js (1)打开终端:Win + R (2)输入node -v来检查是否安装node(3)显示’node’不是内部或外部命令,说明未安装node 2.官网下载3.双击安装:这里不要勾选,然后安装即可 4.验证node.js是否安装成功 (1)终端环…

Windows 提权-手工枚举

本文通过 Google 翻译 Manual Enumeration – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 用户枚举1.1 当前用户 1.2 其他用户2 系统枚举 3 软件枚举 4 网络枚举 5 防病毒/防火墙枚举 6 我的…

424. 替换后的最长重复字符(滑动窗口)

给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。 在执行上述操作后,返回 包含相同字母的最长子字符串的长度。 示例 1: 输入:s = "ABAB", k = 2 输出:4 解释:用两个A替换为两个B,反…

20242942 2024-2025-2 《网络攻防实践》实验四

1.实验内容 通过本次实验,在搭建的实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击,并熟悉wireshark、netwox和ettercap等软件的操作。 2.实验过程 实验1 ARP****缓存欺骗攻击 本实验中Ka…

二叉树相关题

1.二叉树最大深度 思路: 如果节点为空 (root === null),表示这一部分的深度是 0。 如果节点不为空,递归地计算左子树和右子树的深度,然后返回左右子树深度的最大值加上 1(表示当前节点的深度) 代码实现:function maxDepth(root) {// 基本情况:如果节点为空,深度为 0if…