10.9(NOIP 模拟赛 #10)

news/2024/10/9 18:20:08

2025--炼石计划-- 10 月 06 日 --NOIP 模拟赛 #10【订正】 - 比赛 - 梦熊联盟 (mna.wang)

复盘

T1 计数题,感觉不难。用样例模拟了一下,找到一个较优的去重方式。然后过了样例。此时 8:10。

T2 好像又是矩阵加速。想正解。

想不出来,只能做到 \(\mathcal O(n^6 \log k)\) 的复杂度。加上一些别的 DP 能做到 50。

先放弃。此时 11:00 了,后两题还没想,先往后做。

T3, T4 各有显然 15 分。先打暴力。

T3, T4 各有不是特别显然的 5 分。写。

差不多就结束了。挂了 T3 的 5 分,以及 T4 暴力的 -10(?)分,\(100+50+10+35\)

补题 \(100+100+10+35\)

总结

好的:

  • 矩阵加速仍然没写挂。

不足:

  • 越简单的部分分越不仔细。
  • 后两题开始时间有点晚,虽然这场没出问题但是也很危险。

知识点

  • T1:前缀和;
  • T2:矩阵加速,DP;

题解

A. 字符串

显然 \(\tilde s[i, j]\) 是由一个前缀和一个后缀组成的。

对于多个相同的 \(\tilde s[i_0, j_0], \tilde s[i_1,j_1]\dots\) 而言,我们不妨将贡献只在前缀最短时计算,即 \(i\) 最小时计算贡献。

考虑枚举 \(i, j\)。我们要判断 \(\tilde s[i+1,j-1]\) 是否满足上面的条件(即串本身不变的情况下 \(i\) 最小)。考虑什么时候不满足,即存在一个正整数 \(k\) 使得:

\[s[1,i]+s[j,n] = s[1,i+k] + s[j+k,n] \]

这样又可以写成: ​

\[s[1,i]+s[j,j+k-1]+s[j+k,n] = s[1,i]+s[i + 1, i + k] + s[j + k, n] \]

消去律(?)可以变成:

\[s[j,j+k-1]=s[i+1,i+k] \]

也就是说,如果 \(\tilde s[i+1,j-1]\) 应该贡献给答案,那么必须不能存在一个正整数 \(k\) 使得从 \(i+1,j\) 后面分别取 \(k\) 个字符后得到的字符串完全相同。

不难发现 \(k = 1\) 完全可以决定这个命题的真假。所以 \(\tilde s[i+1,j-1]\) 应该贡献到答案中,当且仅当 \(s_{i+1} \ne s_j\)

于是问题变成了求字符串中有多少对字符不相同。

B. 别回头

\(f(t, i)\) 表示 \(t\) 秒时恰好到达 \(i\),且没有连续经过同一条边的方案数。\(g(t, i, j)\) 表示 \(t\) 秒时恰好到达 \(j\),且没有连续经过同一条边,且最后一条经过的边是 \(i \to j\) 的方案数。显然有:

\[f(t, i) = \sum_{j \to i} g(t,j,i) \]

考虑转移:

\[f(t, i) = \sum_{j \to i}\Big(f(t-1,j) - g(t-1,i,j)\Big) \\ g(t, i, j) = \sum_{k \to i}g(t-1,k,i) - g(t-1,j,i) \]

代一下:

\[g(t, i, j) = f(t-1,i) - g(t-1,j,i) \]

再代一下:

\[\begin{aligned} f(t, i) &= \sum_{j \to i}\Big(f(t-1,j) - f(t-2,i) + g(t-2,j,i)\Big) \\ &= \sum_{j\to i} f(t-1,j) - \text{degree}(i) \times f(t-2,i) + \sum_{j\to i} g(t-2,j,i) \\ &= \sum_{j\to i} f(t-1,j) - \text{degree}(i) \times f(t-2,i) + f(t-2,i) \\ &= \sum_{j\to i} f(t-1,j) - (\text{degree}(i)-1) \times f(t-2,i) \end{aligned} \]

其中 \(\text{degree}(i)\) 表示 \(i\) 的度数。

此时整个式子和 \(g\) 无关了。剩下的就是矩阵加速的问题了。这是单次询问。

多组询问的处理方法见 有趣矩阵技巧 - 洛谷专栏。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Linux软中断ksoftirqd

前言 在上一篇 LINUX软中断-softirq的描述中,提到过ksoftirqd,这篇文章就介绍ksoftirqd ksoftirqd 是什么? ksoftirqd 是个内核线程,在创建的时候是绑定cpu的,每一个core对应生成一个ksoftirqd 线程 比如当前系统有4个core ~# ps aux | grep ksoftirqd root 3 0.0…

WPF Binding中的RelativeSource属性

一、简介 一个在Binding中比较重要的知识点——RelativeSource. 使用RelativeSource对象指向源对象。用这个可以在当前元素的基础上查找其他对象用于绑定到源对象。在实际使用Binding的过程中大部分时间Binding都放在了数据模板和控件模板中,(数据模板是控件模板用于定义控件…

信息学奥赛复赛复习15-CSP-J2022-01乘方-数据类型、类型转换、数据类型溢出、指数、模拟指数运算

PDF文档公众号回复关键字:202410091 P8813 [CSP-J 2022] 乘方 [题目描述] 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 a^b 的值是多少。 a^b 即 b 个 a 相乘的值,例如 2^3 即为 3 个 2 相乘,结果为 222=8 “简单!”小文心想,同时很快…

20222327 2024-2025-1 《网络与系统攻防技术》实验一实验报告

一.实验内容 1.了解Linux系统下的基本操作命令,能够处理一些命令出现的error。 2.掌握了栈与堆的概念以及在进程内存管理中的应用。 3.了解基本的汇编语言指令及其功能。 4.能够深刻理解BoF的原理以及如何运用payload完成BoF的攻击 二.实验过程 任务一 直接修改程序机器指令,…

春秋云镜 Privilege

春秋云镜 Privilege上来先用fscan扫一下.___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| __/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan ve…

AI在不同领域的应用与行业影响

本文将探讨AI在不同技术领域和行业中的广泛应用,以及这些应用如何影响和改变我们的世界。 I. 引言 AI技术正日益渗透到各个技术领域,从计算机视觉到自然语言处理,再到音频处理,AI的应用正变得越来越广泛。这些技术的发展不仅推动了科学研究的进步,也在实际应用中展现出巨大…

多态和继承

继承:通常意思就是儿子可以继承父亲的东西,在java里面也是一样的,当我们在同一个包内有多个类的成员变量/方法相同时可以使用继承,只可以在子非静态方法使用 继承就是把相同的成员变量/成员方法放在一个类中,然后使用extends这个关键字来让一个类来继承另一类从而达到代码…