DP 基础题乱做

news/2025/10/22 21:45:34/文章来源:https://www.cnblogs.com/Ydoc770/p/19158040

恶补基础 DP.

CF1061C 多样性

转移是经典的子序列 DP,考虑前 \(i\) 个数,子序列长度为 \(j\) 的方案数. 转移:

\[f_{i,j}=\begin{cases} f_{i-1,j-1}+f_{i-1,j}&j\mid a_i\\ f_{i-1,j}&otherwise. \end{cases} \]

可以滚动数组优化一维. 考虑优化,第二种转移直接继承,第一种转移不必枚举 \(j\),可以 \(O(\sqrt v)\) 处理出所有约数,从大到小转移(与 \(0/1\) 背包原理类似). 总时间复杂度 \(O(n\sqrt v)\).

CF2121H 冰宝贝

看到范围是区间,一个直接的想法是离散化. 然而我们可以换维,直接把值域当做 DP 值,把子序列长度开一维状态来记录. 另一个贪心的想法是我们一定要让子序列末尾尽量小,于是设计出一个状态:\(f_{i,j}\) 表示考虑前 \(i\) 个区间,不降子序列长度为 \(j\) 时末尾最小值,转移:

\[f_{i,j}=\begin{cases} f_{i-1,j-1}&l_i\le f_{i-1,j-1}\le r_i\\ f_{i-1,j} &otherwise. \end{cases} \]

优化仍然可以先滚动一维. 从 \(f\) 下标的角度看转移,就是区间 \([l_i,r_i]\) 整体右移了一位. 若当前最长子序列的末尾不大于 \(r_i\),右移后不会有重叠的位置,最长子序列 \(+1\). 否则存在一个位置 \(p\) 重叠,考虑保留哪个更优. 注意到 \(f_j\) 显然不降,于是应该删掉原来 \(p\) 位置上的值,最长子序列长度不变.

考虑维护,实际上我们只关心查询最长子序列的长度,维护在有序的一列数中插入一个数,删除一个数,并且补位. 发现所有操作都可以用 multiset 维护,时间复杂度 \(O(\sum n\log n)\).

点击查看代码
#include<bits/stdc++.h>
using namespace std;const int maxn = 2e5 + 10;
int T, n;void solve() {cin >> n;multiset<int> s; s.insert(0);while(n--) {int l, r; cin >> l >> r;auto p = s.upper_bound(r);s.insert(l); if(p != s.end()) s.erase(p);cout << s.size() - 1 << " ";} cout << "\n";return;
}int main() {ios :: sync_with_stdio(false); cin.tie(0); cout.tie(0);cin >> T; while(T--) solve();return 0;
}

AT_agc054_b [AGC054B] 贪心划分

agc 特有的结论计数题,鉴定为纯粹的脑筋急转弯.

结论:确定两人最终选择的物品集合后,两人拿物品的排列唯一确定,即二者构成双射. 可能不难感受到正确性,然而独立想到并不容易.

所以直接背包跑选 \(i\) 个物品凑到 \(sum\over2\) 的方案数,再赋予排列顺序加起来即可.

AT_agc054_c [AGC054C] 粗略排序

神人题.

考虑对于一个排列怎么交换使其合法. 发现由于所有数都比 \(1\) 大,\(1\) 至少要挪到位置 \(k+1\),除非本来就在 \(k+1\) 前面,同理可以推广到数 \(i\) 至少要挪到 \(k+i\).

那么对于一个操作后的排列,\(p_i=i+k\) 的位置原来就只可能在区间 \([i+k,n]\),乘起来即可.

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

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

相关文章

20232315 2025-2026-1 《网络与系统攻防技术》实验二实验报告

20232315 2025-2026-1 《网络与系统攻防技术》实验二实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验二实验报告 目录一、实验基本信息二、实验内容三、实验要求四、实验过程4.1使用netcat获取主机操作Shell…

2025-10-21 XQQ Round 赛后总结

赛时心路历程开 T1,然后 think 一会就秒掉了。大洋里一遍过。 开 T2,然后 think 一会就秒掉了。大洋里也是一遍过。 15:48 think T3,结果假了。但是注意到在 \(m=0\) 的时候是对的,10 分也是分。 16:25 想不到 T3。…

《中华人民共和国网络安全法》第二十一条这一核心考点

《网络安全法》第二十一条 考点精析 法条原文:国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或…

二三级区别

等保第二级 vs 第三级核心差异及考点精析 核心关系:第二级是 “指导防护” ,第三级是 “强制管控、增强审计” 。从二级到三级是质的飞跃,而非简单量的增加,这正是考试的重点。核心差异对比与考点解析控制领域 核心…

小红书 404 重定向

function clientRedirect(e) { window.location.href = e, setTimeout(function() { window.location.href = e }, 100), setTimeout(function() { …

第九章-Where-1S-tHe-Hacker

第九章-Where-1S-tHe-Hacker 1、通过本地 PC RDP到服务器并且找到黑客ID 为多少,将黑客ID 作为 FLAG 提交; 这里一定一定要先把windows安全中心关了。不然会影响后门题目正常做从这里看到了管理员账户和密码,我们先看…

CF 2023D Many Games

huiyoude上界卡不来,怎么这么菜??? 下文的概率都是指的 \(\frac{p}{100}\)。 首先有一个想法就是直接背包,但是 \(\prod p\) 涉及不小的数的乘积并不好放入状态,所以考虑设 \(f_s\) 表示 \(\sum w = s\) 的最大概…

2025.10.22考试记录

T1 题意 在 \(n\) 瓶水中有1瓶毒药,\(m\)次实验,每次选择 \(k\) 瓶水测试其中是否有毒药,给出实验结果,试判断能否辨别出毒药,若能则给出最早得出结论的实验批次,否则求出可能成为毒药的编号。 分析 提前一天就被…

2025多校冲刺CSP模拟赛7 题目分析

T1 题目概述 求: \[\sum_{i=1}^n\sum_{j=i}^n[\gcd(i,j)=i\text{ xor } j] \]其中 \(n\leq 10^7\)。 分析 赛时没有做出来(doge)。 其实细想一下还是可以做的。 不难想到枚举 \(d=\gcd(i,j)\),那么 \(i\text{ xor …

学习资源

关于科研方向以及自己学习的一些经验借鉴资源 LLM 度盘有资料 【1080P】安德烈卡帕西:深入探索像ChatGPT这样的大语言模型|Andrej Karpathy 【2025最新】LLM大模型零基础全套入门保姆级课程,台大李宏毅《生成式人工…

CMC-C# Visual Studio2022 中不能进入断点設置方法

CMC-C# Visual Studio2022 中不能进入断点設置方法

[题解]P4616 [COCI 2017/2018 #5] Pictionary

P4616 [COCI 2017/2018 #5] Pictionary 我们发现,第 \(i\) 天会让所有为 \((m-i+1)\) 倍数的节点相互连通。可以将 \((m-i+1)\) 向它所有的倍数连边,效果是相同的。 我们规定边权为 \(i\)。 那么对于建好的图,我们不…

2025.10.22总结 - A

今天上了离散和马原,感觉还可以,加油

蛋白表达系统的技术布局与应用

引言 蛋白表达技术是分子生物学与生物制药研究的核心支撑之一。不同的蛋白表达系统在转录调控、翻译后修饰以及生产效率上各具特点。对于科研与产业化生产而言,系统选择不仅影响产量,更决定蛋白的结构与功能完整性。…

10月22日

今日学习了离散数学的逻辑结构与马克思主义的原理概论。离散数学严谨的符号推理,与马克思主义宏观的历史规律,分别从微观与宏观维度锻炼了我的抽象与辩证思维。二者虽领域迥异,却共同揭示了世界运行的内在逻辑与秩序…

软件工程学习日志2025.10.22

今日目标让后端服务稳定启动,加载最新静态资源与 WebSocket 逻辑。 修复聊天气泡左右归属判定错误(所有消息都在右侧)。 提升右侧气泡内昵称与时间的可读性(颜色对比度不足)。实施过程多次尝试本地启动方式,修正…

Seg T

交换律类任意一个标记向下时,两种标记都要下放 求max 时,query的无关子树返回极小值 pushdown和update的修改应当相同(对于结合律类时,可能update时对同一个tag的处理不同(如+&时对 add 有+有),对应到pushd…

Typora的多端同步方案,如何多台计算机共享md文件?Windows和Mac通过定时执行git来同步markdown文件

Windows和Mac通过定时执行git来同步markdown文件。 在阅读文章前,务必给typora配好图床,图床真的很爽,去网上搜搜教程二十分钟配好。 配置git免密码推拉 首先需要给git配置免登录,使用ssh推拉代码。如果不想看废话…

OOP-实验二

实验任务一 源代码 T.h点击查看代码 #pragma once#include <string>// 类T: 声明 class T { // 对象属性、方法 public:T(int x = 0, int y = 0); // 普通构造函数T(const T &t); // 复制构造函数T(T &am…

P2272 [ZJOI2007] 最大半连通子图

P2272 [ZJOI2007] 最大半连通子图 题解闲聊:最近好像一直在写题,好久没补题解了qwq,今天来一发。 以及,不会缩点的请先移步P3387题目传送门 博客传送门 思路 首先呢,如果原图里存在强连通分量,那么它们首先是半联…