2025.10.27训练记录

news/2025/10/28 20:56:56/文章来源:https://www.cnblogs.com/docxjun/p/19172613

其实是10.28晚上写的。感觉就这个题要记录一下。
上午noip模拟。喜提一道不会。

B

题外话:
7:45 开始考试,广附集训爷大吼一声我做过!声称A完全不可做,但B他场切了。于是我开场看B。
那就看B,7:50闭了一下眼睛,睁开的时候已经9:30了。

9:30开始看B,发现是排列数问题。
好像已经有段时间没有做出来任何排列数问题了。
原因大概是:我觉得排列上的dp比较难以考虑。那我能套的方法少了一大半。
为什么排列上dp我一点都不会呢?感觉对排列计数的话全是后效性不知道怎么设状态。
那就先不考虑dp。将我会的计数套路一个个往里套。
大失败!

挺久没有遇到这种一点思路都出不来的题了。

赛后看题解发现确实没有归到常规的计数套路中。又花了很长时间理解正解。

嗯,那就写一下我的理解。
首先拿到这题的时候就考虑推一推性质。想一想题意给的 \(ax + by\) 能够得出什么。
\(a_1 x + b_1y < a_2 x + b_2 y\)时,有:
\((a_1 - a_2) x < (b_2 - b_1) y\)
先不考虑小于等于0的取值问题再推一步,有:

\(\frac{a_1 - a_2}{b_2 - b_1} < \frac{y}{x}\)

于是我们发现,\((i, j)\) 这两个数对的大小关系,可以由 \(\frac{a_i - a_j}{b_j - b_i}\) 这个比值和 \(\frac{y}{x}\) 的大小关系决定。
这个还是好推的,属于题意范畴。

然后就是非常难想的第一步。
由于 \(x\)\(y\) 的值在 \((0, \inf)\)任取,于是考虑在 \(\frac{y}{x}\) 从趋近于 \(0\) 变化到正无穷时,排列发生的变化。
\(\frac{y}{x}\)趋近于 \(0\) 时,就相当于以 \(a\) 为第一关键字,\(b\) 为第二关键字排序。由于没有重复的数对,所以这个顺序是唯一确定的。

现在你有了一个初始的顺序,考虑什么时候这个顺序会发生变化。
结合上面那个比值的关系,可以发现,\((i, j)\) 这两个数对的大小关系在 \(\frac{y}{x}\) 等于 \(\frac{a_i - a_j}{b_j - b_i}\) 的前后发生变化。
所以我们枚举每个 \((i, j)\),将 \(\frac{a_i - a_j}{b_j - b_i}\) 离散化保存,作为 \(\frac{y}{x}\) 变化过程中的「分界点」。
那么直观地来说,排列的方案数就是「分界点数量 \(+1\)」。
但是本题需要考虑题目中提到的「如果多个对象的加权值相同,它们之间的相对顺序可以任意」。

对应到我们抽象出的这个模型中就是说,在\(\frac{y}{x}\)取到每个分界点的时候,一部分位置是可以乱排的。
我们仔细地来考虑:在取到每个分界点时,具体是哪些位置可以乱排。
还是考虑我们推出的那个比值式子,两个位置在此时可以交换,代表着\(a_i x + b_iy = a_j x + b_j y\)
那么就是\(\frac{a_i - a_j}{b_j - b_i} = \frac{y}{x}\)
即对于每个分界点,当对 \((i, j)\) 的比值刚好等于这个分界点的值时,\((i, j)\) 这两个位置可以交换。
实现上,我们枚举离散化后的每个分界点,全局上维护一个并查集,对于每个比值等于这个分界点的对 \((i, j)\),将 \(i\)\(j\) 加入同一个集合。
那么在分界点时的排列方案就是每个连通块的 \(\prod siz_i\)
然后注意到两个分界点中间的那个排列方案会被计算两次。
所以最终的答案就是 \((\sum (\prod siz_i - 1)) + 1\)

很聪明吧。
很聪明吗?
做完之后考虑这题的方法如何沿用。
首先是对于排列计数的问题。有时候可以考虑顺序在何时变化,对于这个变化去计数。
也许这是对于排列计数的一种方法,而现在我很缺乏类似的计数技巧。
这题的转化感觉其实挺复杂的,先把数对挂到时间轴上,再一个个拍回去统计数量。
可能我写的有些神神叨叨了。

据同学声称,他场切这道题的时候很顺地就做下来了。
这种顺着下去想的能力如何锻炼,感觉完全没有道理。

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

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

相关文章

软考复习总结

距离软考还有不到十天,主要对学习的知识点进行总结回顾(以下知识点无顺序重点): 1.对于尾数用补码进行表示时,要注意如果机器位8位,已知补码包含一位符号位,则补码真值的范围(-2n-1,2n-1 - 1), 则将其转换为…

实用指南:Eclipse 透视图(Perspective)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

? #6

100 + 0 + 80 + 0 = 180, Rank 2/6.2024暑期CSP-S&NOIP模拟赛第8套题⾯ 链接:link 题解:暂无 时间:4h (2025.10.28 14:00~18:00) 题目数:4 难度:A B C D\(\color{#F39C11} 橙\) \(\color{#FFC116} 黄\)*1000 …

鲜花:不会说明你有抑郁症3

这回是广为人知题了。自然数幂和:给定 \(n,k\),求 \(\sum_{i=1}^{n} i^k\),\(n\le 10^{18},k\le 2000\)。本来以为用扰动法求自然数幂和很猎奇,结果一搜出来十来篇博客。唉我还是太菜了。 尝试扰动法处理。 设: \…

算法竞赛知识点速通手册

1. 基础贪心:邻项交换与证明 贪心算法的精髓在于“局部最优”导向“全局最优”。然而,其正确性并非总是显而易见的,需要严谨的数学证明。邻项交换(Exchange Argument)是证明一类排序相关贪心策略最经典、最强大的…

集训做题杂记1 - -MornStar

[CTS2024] 众生之门 小清新构造题。 观察大样例可以发现答案不大于 \(3\),感性猜测可以在路径长度不超过 \(3\) 的情况下遍历整棵树,事实也确实如此。 进一步考虑答案一般为 \(0\) 和 \(1\),只有 \(n\) 比较小或者图…

CF1909I Short Permutation Problem

CF1909I Short Permutation Problem并非独立切,大量参考题解。 对于排列计数问题,考虑三个方向:容斥、连续段DP、按顺序加数。 发现容斥和连续段DP没前途,考虑按顺序加数。从 \(1\) ~ \(n\) 加数显然是不行的,因为…

ROS1 go2 vlp16 局部避障--3 篇 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

25.10.28随笔NOIP模拟赛总结

考试 开考看题,秒了 T1,感觉 T2 是简单 dp,T3 有点神秘不知道,T4 一眼有一个 \(\mathcal O(n^2)\)。于是顺序开题。T1 很快写了,T2 看了一个小时还是不会有点难崩,当时是很快想到一个 dp,设 \(f_{i,j,0/1}\) 表…

第二十八篇

今天是10月28号,上了铁道技术认知。

P8269 [USACO22OPEN] Visits S

P8269 [USACO22OPEN] Visits S 题解题目传送门 博客传送门 首先,每头牛牛都只有一个拜访对象,所以如果考虑图论建模的话,相当于每个点出度都是 1。这相当于图是个基环树森林(注意不只有一棵基环树),而且每个基环…

Luogu P13925 [POKATT 2024] 联合猫国 / The Paw-litical Game 题解 [ 蓝 ] [ 线性 DP ] [ 种类数观察 ]

联合猫国 去年模拟赛做过一道几乎一模一样的题,于是一眼秒了。 本题的一个结论:最终可合并的区间数为 \(\bm{O(n\log n)}\) 级别。 证明可以考虑构造出可合并区间数最多的序列,显然是所有数都相同时的区间数,可以取…

深入解析:【STM32项目开源】基于STM32的独居老人监护系统

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CSP-S 41多校 9

10.28 (虽然但是下发文件NOIP?)10.28 CSP-S 前倒数第二场模拟赛,直接一道都没切出来。。。 再不放信心赛真要没信心了。 t1 dp题。 显然对于每一次行动都是一个背包dp。 变种在于背包更换,更换后容量重新计算。 所…

【25.10.28】模拟赛

T1 code #include<bits/stdc++.h> using namespace std; const int N=5e4+5,M=1e3+5; int n,m,ans=0; char s[N],t[M]; int nxt[M]; int f[N][M]; int g[M][30]; void getnxt(){nxt[1]=0;int j=0;for(int i=2;i&…

CSP-S模拟41

CSP-S模拟41 A. 数轴取物(axis) 显然可以有一个 \(O(n^3)\) 的背包 dp,设 \(dp[i][j][k]\) 表示选区间 \([i,j]\),背包容量为 \(k\) 时可获得的最大价值。每次枚举固定左端点从小到大枚举右端点,发现 \(dp[i][j]\) …

Linux双中文编码笔记

Linux双中文编码笔记/etc/locale.gen zh_CN.GB18030 GB18030zh_CN.GBK GBK 上面两行默认是被注释掉的,要打开。 /usr/sbin/dpkg-reconfigure/usr/sbin不在普通用户的PATH里,再说运行它也需要root权限。 如果dkpg-rec…

C++类和对象(1) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

人工智能之编程基础 Python 入门:第二章 Python 的编辑器 VS Code

人工智能之编程基础 Python 入门:第二章 Python 的编辑器 VS Code人工智能之编程基础 Python 入门 第二章 Python 的编辑器 VS Code@目录人工智能之编程基础 Python 入门前言一、VS Code安装二、配置PythonVS Code 汉…

2019 福建省队集训录

退役前最后的贡献\(\scr{Day}\ 1\) T1 (sort)Source:$\bf{solution}$$\bf{code}$T2 (sort)Source:$\bf{solution}$$\bf{code}$T3 (sort)Source:$\bf{solution}$$\bf{code}$