做题记录 #5

news/2025/11/11 1:37:54/文章来源:https://www.cnblogs.com/Lightwhite/p/19208653

A. CF2135E1 Beyond the Palindrome (Easy Version) (7.5)

2025.11.10

容斥好题。首先发现这个消除 10 子串类似一个括号序列,最后只会剩下 前缀一堆 \(0\) 和 后缀一堆 \(1\)。经典 trick 转 \(\pm 1\) 前缀和折线,令 \(0\)\(-1\)\(1\)\(+1\),那么不难发现前面 \(0\) 的个数是 \(-\min pre\) 个。反转后的前缀和折线,可以发现刚好是原折线绕 \((n,pre_n)\) 旋转 \(180^\circ\),因此不难得到 \(\max pre - pre_n = -\min pre\),即 \(\max pre + \min pre = sum\)。非常好的转化。

那么接下来怎么做呢?可以枚举这个折线的值域,即 \(\max=u\)\(\min=d\)。此时非常想要反射容斥,但是这个条件是“恰好”的,不好处理,考虑容斥成 \((d, u) - (d + 1, u) - (d, u - 1) + (d + 1, u - 1)\),就可以改成 \(\max \leq u, \min \geq d\) 了。

于是考虑反射容斥。与 Catalan 的反射容斥不太相同,它有两条线卡着。但是反思反射容斥的过程,我做一次反射可以容斥完所有的只触碰当前 \(y=i\) 这个限制直线 的方案,所以连续的触碰同一个限制是无需考虑的,我只需要考虑交替的触碰。当然,会有两种交替的方式(向上或向下)。由于 \(x=n\) 的情况下无法走到 \(|y| > n\) 的点位,而且每两次反射都会增长 \(2(u-d)\) 的纵坐标绝对值,因此做一个 \((d,u)\) 的复杂度是 \(\mathcal{O}(\frac{n}{u-d})\) 的。暴力枚举 \(n^2\ln n\)

发现我有很多的 \(u-d\) 相同,他们考虑的反射其实是类似的,我们可以直接把它连起点平移到 \((0, u-d)\) 的限制中。此时,起点是 \((0, 0\sim u-d)\),对应的终点是 \((n, u-d\sim 0)\)。不难发现我做的翻折不会给点横坐标带上系数,因此每个起点对应的终点横坐标一定也是段区间。此时存在两种情况,一种差值全相等,组合数直接乘起点数即可;另一种差值是个公差为 \(2\) 的等差数列,考虑到 \((0, 0)\rightarrow (n, x)\) 的方案数其实是 \(n\choose (n+x)/2\),因此是个组合数区间和,总数都是 \(n\),预处理一下前缀和即可。时间复杂度 \(\mathcal{O}(n\ln n)\)

代码细节挺多,因为会有上面容斥的 减去项,需要深思熟虑。今天状态有点差,想不明白这个 E2,看题解也没有很懂,但是感觉是特殊化的推式子,感觉不太 educational,故没有补/hsh

Code
// STOOOOOOOOOOOOOOOOOOOOOOOOO hzt CCCCCCCCCCCCCCCCCCCCCCCORZ
#include <algorithm>
#include <cassert>
#include <iostream>
#include <numeric>
#include <vector>using namespace std;
using LL = long long;
using PII = pair<int, int>;
constexpr int kN = 1e6 + 1, kP = 998244353;int T, n;
int inv[kN], a[kN];
LL sum[kN];
LL Get(int l, int r) {l > r && (swap(l, r), 0);return sum[min(r, n)] - (l > 0 ? sum[l - 1] : 0);
}
int Func(int d, bool o) {LL ret = 0, len = d + 2 - o;for (int k = 0, l; (l = (n + d - o) / 2 - k * len) >= 0; k++)  //* UDret += Get((n - d) / 2 - k * len, l);for (int k = 1, r; (r = (n - d) / 2 + k * len) <= n; k++)  //* DUret += Get(r, (n + d) / 2 - o + k * len);for (int k = 0, p; (p = (n - d) / 2 - 1 - k * len) >= 0; k++)  //* Dret -= (d + 1ll - o) * a[p] % kP;for (int k = 1, p; (p = (n - d) / 2 - 1 + k * len) <= n; k++)  //* Uret -= (d + 1ll - o) * a[p] % kP;return (ret % kP + kP) % kP;
}
int main() {
#ifndef ONLINE_JUDGEfreopen("input.in", "r", stdin);freopen("output.out", "w", stdout);
#endifcin.tie(0)->sync_with_stdio(0);inv[1] = 1;for (int i = 2; i < kN; i++)inv[i] = 1ll * (kP - kP / i) * inv[kP % i] % kP;for (cin >> T; T--;) {cin >> n, sum[0] = a[0] = 1;for (int i = 1; i <= n; i++) {a[i] = 1ll * a[i - 1] * inv[i] % kP * (n - i + 1) % kP;sum[i] = (sum[i - 1] + a[i]) % kP;}LL ans = 0;for (int d = 2 - (n % 2), lst = 0; d <= n; d += 2) {ans += lst;ans += (lst = Func(d, 0));ans -= 2 * Func(d, 1);}cout << (ans % kP + kP) % kP << '\n';for (int i = 0; i <= n; i++)sum[i] = a[i] = 0;}return 0;
}

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

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

相关文章

降AI总踩坑?关键看这3点选对工具

1. 降AI的核心需求:别只盯着“过检测”,这两点更重要 很多同学降AI只关注“能不能过系统”,但忽略了两个更关键的问题:改完的内容还是自己的吗?语句通顺吗?毕竟论文不仅要过检测,还要应对答辩——如果改得逻辑混…

逆向 | 逃离鸭科夫 unity mono游戏hook

逆向 | 逃离鸭科夫 unity mono游戏hook 依旧是处理上一个博客的问题,这次直接用扫内存提jit的方式来找到目标函数,然后进行hook。 之后做详细视频发b站,这里就贴个代码。 好久不手搓硬编码和inlinehook犯了好多错,…

AI降重避坑指南:如何有效降低论文AI检测率?

AI降重避坑指南:如何有效降低论文AI检测率? 一、AI检测原理简析:为何普通改写难以奏效? 随着AI写作工具的普及,学术论文的AI检测也日益严格。目前主流的AI检测系统,如知网、维普、万方等平台的相关机制,不仅仅是…

降AI攻略:博主实测经验分享

降AI攻略:博主实测经验分享 一、为什么AI生成的文本容易被检测? 现在AI写作工具越来越普及,但随之而来的是AI检测技术的升级。很多同学和我抱怨,自己用AI写的内容很容易被系统识别出来,尤其是学术论文,一旦被判定…

论文降AI,如何高效又保真? - BUAA

一、为何论文降AI成为科研刚需? 随着AI写作工具的普及,学术论文中的AI生成痕迹检测日益严格。学校和期刊不仅要求查重率达标,更对AI生成内容零容忍。一旦被判定为AI辅助过度,轻则要求重写,重则影响答辩甚至学术信…

20251110 之所思 - 人生如梦

20251110 之所思今天来了很多国外的同事,有印度的,德国的,韩国的,一起开workshop讨论一些事情,但是感觉到自己面对不太熟的同事发言时有点紧张,到网上查了一下,可能有轻微的社交恐惧:恐惧的表面原因:总是担心…

import { random, guid } from uview-plus;报错找不到uview-plus

官方文档很多这种import { random, guid } from uview-plus; 这会报错,说找不到uview-plus,因为我使用的Hbuilder的导入方式,我猜要使用npm的方式才能用from "uview-plus",而Hbuilder方式采用 @/uni_modul…

*题解:P3960 [NOIP 2017 提高组] 列队

原题链接 解析 考虑 \(x = 1\) 怎么做,可以发现此时只有第 \(1\) 列和第 \(m\) 行会发生变动,将其拼起来可以视作一个数列,操作就是单点删除和结尾插入。怎么维护呢?不一定要平衡树,有一种用树状数组的做法:维护…

PyTorch - whats the difference between models training mode and evaluation mode?

PyTorch - whats the difference between models training mode and evaluation mode?In PyTorch, a model can operate in two main modes:Training mode — activated by calling model.train()Evaluation mode — …

【CI130x 离在线】C++ 11智能指针 std::unique_ptr

std::unique_ptr 是 C++11 引入的特性! C++ 智能指针的发展历程版本 年份 智能指针特性C++98 1998 std::auto_ptr(有缺陷,已废弃)C++11 2011 ✅ std::unique_ptr✅ std::shared_ptr✅ std::weak_ptrC++14 2014 std…

Doxygen 入门

Doxygen 可以通过解析代码中的特殊注释来生成详细的文档。以下是完整的操作流程: 1. 安装 Doxygen Windowsbash# 使用 Chocolatey choco install doxygen# 或从官网下载安装包 # https://www.doxygen.nl/download.htm…

第21天(简单题中等题 二分查找、排序)

打卡第二十一天 3道简单题+1道中等题题目:两个数组的交集 给定两个数组nums1和nums2,返回它们的交集.输出结果中的每个元素一定是唯一的。可以不考虑输出结果的顺序。 思路: 排序+双指针代码: class Solution { publi…

CSAPP学习笔记(施工中)

CSAPP 信息的处理和表示 数字的存储 内存被划分为不同大小的字块,32位CPU->4字节,64位CPU->8字节 对字长\(w\)的机器而言,虚拟地址范围为\(0~2^w-1\),即有\(2^w\)个字节 64位架构地址空间限制为48位虚拟地址…

当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? - fish666

就是当Mb连不上虚拟机的时候,这是因为啥?我应该怎么解决?? 首先,就是物理机ping一下虚拟机,看看能不能ping通,,虚拟机ping一下物理机(192.168.236.1)他是1,看看能不能ping通。 如果不能ping通的话,表明物理机…

计算不确定度

假如有数据,13.99 15.07 13.98 14.12 14.69 15.31 14.82 15.01 14.71,要计算其不确定度u A=[13.99 15.07 13.98 14.12 14.69 15.31 14.82 15.01 14.71]; col=size(A,2); s=zeros(1,col); B=A-mean(A); C=B.*B; u=sqr…

会议开了一整天,记录却只有三行?

你知道67%的会议没有有效纪要吗?本文分享一个专业的会议纪要AI指令,能将混乱的会议内容快速转化为结构化、可追踪的专业文档。完整引用原始指令,支持DeepSeek、通义千问等国产AI工具,30分钟生成专业纪要,让每次会…

Day17盒子模型中设置外边距时的问题

外边距问题1之合并现象<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

基于Github Action 配置Java Python Go. Rust Nodejs C++ 实现自动发布功能

需求:基于Github Action 配置Java Python Go. Rust Nodejs C++ 实现自动发布功能。 Java Python Go Rust C++ NodeJshttp://www.cnblogs.com/Jame-mei

File文件

1.读取文件内容读取方法 底层操作(核心) 上层处理(对字节的后续操作) 适用场景read 读取字节到 &mut [u8] 数组 直接使用字节(不做任何转换) 二进制文件分块读、大文件read_to_end 读取所有字节到Vec<u8&…

2025 年 11 月蔬菜配送厂家推荐排行榜,新鲜生鲜水果,有机食堂食材,生鲜蔬菜配送中心,蔬菜配送平台,新鲜蔬菜配送上门公司推荐

2025年11月蔬菜配送行业权威推荐榜单:专业采购决策指南 一、行业背景与发展趋势 随着现代生活节奏的加速和食品安全意识的提升,蔬菜配送行业正经历着前所未有的变革与发展。作为连接农业生产与消费终端的重要纽带,蔬…