9.11 多校A层冲刺NOIP2024模拟赛15 改题记录

HZOJ

写在前面

貌似没啥写的必要。但是纪念一下第一次rk1就写写吧。毕竟这场还是有些神奇的东西在的。

虽然一直想放歌但是由于某种原因一直不敢放。今天终于鼓起勇气放了但是。。。好吧,有些东西还是应该只和自己或者和值得分享的人分享。虽然一直觉得吒曲又吵又抽象,反正除了极个别其他都是难如听,但是新歌竟然出人意料的能入耳。反正大概就是以后不会再去放歌了。

upd:没想到主榜也能当一次rk1,应该是过去现在未来唯一的一次了。泪目了呜呜呜。
批注 2025-09-12 083912

T1 追逐游戏 (chase)

为啥T1就来树上问题。。。题意是树上一个人路线和速度固定,另一个人去追/堵,求问最小相遇时间。笑如死赛时所有糖错犯了个遍导致3h才调出来,具体是思路错细节错到处错。值得庆幸的是ST表竟然一遍打对了。反正就是45min写出\(O(nlog^2n)\) 的一版然后发现挂了又写了个树剖check,然后又犯各种糖导致一直改不对,以为终于改完错了猛然醒悟思路错了。然后又继续删删写写重构inf次代码终于过了。正解就写一个小小的分讨然后注意细节就能过了。不知道为啥能卡这么久。

T2 统计

题意是给定序列和值域,求问由多少个非空子段满足值域中所有数出现次数相同。最开始想着权值线段树+类莫队,结果写挂了就回到权值线段树上\(O(n^2logn)\) 过于优秀。然后发现明明普通数组\(O(1)\) 就能完成的非要加个log,遂改了。然后没想到最后还有时间突然灵光乍现发现每多值域个数才有可能对答案产生贡献,遂改为\(O(n^2/m)\)。结果还是只有\(n^2\) 档的分,优化了个寂寞。

正解十分巧妙。类似于异或哈希,我们构造一个所有值域异或起来能为0的序列,求前缀异或和的同时查找前面与当前值异或能等于0的前缀的数量,就能找出答案。但是相同数也能异或为0,所以我们可以转化一下,同样求前缀和,但不用异或,求值域对应值时求下前m-1个数的前缀和,第m个数的值就为前缀和的负数,这样可以有效避免其他因素的影响。总之就是非常神奇。

代码
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const int maxn=1e6+10;
mt19937_64 rnd(time(0));
int T;
int n,m,a[maxn];
ull to[maxn];
unordered_map<ull,int> mp;
int main(){
	freopen("st.in","r",stdin);
	freopen("st.out","w",stdout);
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); 
	cin>>T;
	while(T--){
		mp.clear();
		mp[0]=1;
		cin>>n>>m;
		ull yh=0,yhh=0;
		long long ans=0;
		for(int i=1;i<=n;i++) cin>>a[i];
		for(int i=1;i<m;i++) to[i]=rnd(),yhh+=to[i];
		to[m]=-yhh;
		for(int i=1;i<=n;i++) yh+=to[a[i]],ans+=mp[yh],mp[yh]++;
		cout<<ans<<'\n';
	}
	return 0;
}

T3 软件工程

题意大概是将n条线段分为k组,每组的贡献是其组内线段区间的交。

看到线段看到分组以为苦学那么久的李超树终于能派上用场了,结果细看题,一道完全没思路的dp。但是考虑到一些性质,告诉我贪心能砍分。遂写了个贪心。没想到竟然能拿71,如果开long long 还能再砍25。。。不理解不支持不尊重。没想到的是至今还貌似无人改出正解。

看了下题解,大概就是分两种情况,存在一个区间交集为空的集合或者所有集合区间交集都不为空。前者就贪心取前k-1长的线段长度相加,后者就直接暴力dp。答案就是二者取max。

dp状态就为前i条线段分j组。先按右端点从小到大排序,对贡献产生影响的左端点也一定是升序的。转移大概就是为当前线段单开一个集合或者将其并入前面一个集合,并入前面集合要减去区间并缩小的影响。

代码就是杂交了一下,没啥意义就不放了。

T4 命运的X

太难了跳了。题解也看不懂。但是赛时乱搞能过所有样例,虽然最终依旧标准结局。命中注定大概就是过不了吧。

古风小生吟诗一首:

数学题,真神奇。
无理转化不模拟。
快速幂,KMP。
异类杂交斩dp。
快刀乱麻取pt(s)。
我是春竹所以数学题请远离me。

posted @ 2025-09-11 20:11  _dlwlrma  阅读(19)  评论(3)    收藏  举报