当前位置: 首页 > news >正文

ZR 2025 NOIP 二十连测 Day 5

呜呜我错了……我再也不开太大的 vector 了呜呜……/dk /dk /dk


25noip二十连测day5

链接:link
题解:题目内

时间:4h (2025.10.20 14:00~18:00)
题目数:4
难度:

A B C D
\(\color{#52C41A}绿\)
*1800

估分:[65,85] + 100 + 5 + 5 = [175,195]
得分:85 + 32 + 5 + 5 = 127
Rank:67/128


场祭

读题。

好困难!

想了 20min A 毫无头猪。

B 看起来是图论建模的样子,但是还是毫无头猪。

!然后看见了样例解释,注意到了差为 \(8\) 的倍数这一句话,于是想到同余!然后发现一条限制就可以表示成 \(w_{a_i} \equiv w_{b_i} + c_i \pmod {d_i}\),然后注意到 \(d_i = 2^k\),所以考虑给每个 \(2^k\) 开个 dsu,一条限制就转化成了图上的边。但是考虑到在模不同 \(2^k\) 意义下万一会有不同的唯一解,那就会产生错误了,所以要在 \(\le d_i\) 的每个 dsu 内都连上这条边,似乎是得到了一个必要条件,于是把必要当充分,写写写,过样例了!

(赛后看题解发现其实只用在 \(d_i\) 这一个 dsu 内连边就是对的,依然是必要当充分不考虑证明。

看了看 CD 暴力,发现都只会打最暴力的暴力,所以就从 A 开始打了。

然后发现 \(p_i \le 11\) 似乎可以爆搜,因为乘积的增长是非常迅速的。写写写,0ms 过掉了大样例,甚至还顺便过了 \(n \le 100\) 的大样例。

打 CD 暴力,发现暴力都不会了,分别拿了 5pts 提交答案和 5pts 特殊性质走人了。


补题

B 怎么 MLE 了/jk

原来是 vector 开的过多导致的,把 dsu 里面存连通块所有点的 vector 换成一个类似于前向星的存储方式就好了……

问了 gpt,原来一个空 vector 会存三个指针也就是 24 个字节,相当于 3 个 long long,可怕。

以后都这么写吧,能不开太多的 vector 就不开。

struct __dsu
{int n,d,mod,fa[N],sz[N],nxt[N],ed[N]; // nxt 下一条边,ed 连通块内最后一个点的编号il void init(int _n,int _d){n=_n,d=_d,mod=1<<_d; rep(i,0,n+1) fa[i]=i,nxt[i]=0,sz[i]=1,ed[i]=i;}il int find(int x) {return x==fa[x] ? fa[x] : fa[x]=find(fa[x]);}il bool merge(int a,int b,int c){int dlt=w[d][a]-c-w[d][b];a=find(a),b=find(b);if(a==b) return 0;sz[a]<sz[b] && (swap(a,b),dlt=-dlt);d<16 && (dlt=(dlt+mod*10)%mod,1);fa[b]=a,sz[a]+=sz[b],nxt[ed[a]]=b,ed[a]=ed[b];for(int u=b;u;u=nxt[u]) w[d][u]+=dlt,d<16 && (w[d][u]%=mod);return 1;}
} dsu[17];

天依宝宝可爱!

http://www.jsqmd.com/news/17773/

相关文章:

  • 关于单片机内部ADC采样率,采样精度的理解与计算整理 - 实践
  • 整体架构与数据流
  • 【上青了】
  • [VIM] reverse multiple lines in VIM
  • DeviceNet 转 Ethernet/IP:三菱 Q 系列 PLC 与欧姆龙 CJ2M PLC 在食品饮料袋装生产线包装材料余量预警的通讯配置案例
  • 【大模型】【扫盲】几种不同的微调方法
  • Tuack 生成比赛题目 PDF 笔记
  • 在 wrapper 类里实现重载方法
  • Vue 项目 AI 文档增量更新工具操作手册
  • P7521 [省选联考 2021 B 卷] 取模 分析
  • 4060显卡也能玩转AI改图!Flux.1 Kontext Dev GGUF版本超详细入门教程 - 实践
  • 提升生产力:8个.NET开源且功能强大的快速开发框架
  • Mac版PDF Squeezer v4.5.1安装教程(DMG文件下载+详细步骤)​
  • 使用c++14标准实现函数注册包装
  • 【VSCode中Java创建环境安装的三个层级之Maven篇】(Windows版)
  • 详细揭秘:马拉车算法
  • 黑马程序员Java基础笔记
  • 实用指南:linux磁盘空间爆满排查与清理
  • 实用指南:socketpair深度解析:Linux中的“对讲机“创建器
  • 详细介绍:从零开始的C++学习生活 2:类和对象(上)
  • 【aigc】chrome-devtools-mcp怎么玩? - 指南
  • 2025年不锈钢酸洗钝化液厂家推荐排行榜,环保型不锈钢管酸洗钝化液,不锈钢清洗钝化液,酸洗钝化处理工艺及不锈钢清洗剂公司推荐
  • 记账:流水报表
  • 百度网盘非会员下载慢怎么解决 - fosgrignonhto
  • 嵌入式硬件——基于IMX6ULL的UART(通用异步收发传输器) - 教程
  • 20232418 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • CF1777E Edge Reverse
  • d435i 标定 imu和相机 用来复现vins_fusion - 教程
  • CSP-S 模拟赛 Day 19
  • K230基础-摄像头的使用 - 详解