2020.4.18集训总结

2020年CSP-J复赛真题及题解:T4 方格取数 阅读详情

线段树专题II,比I还是好点吧…I的T3T4太毒瘤


T1

[POI2015] KIN

传送门

这题思路其实非常的巧妙,至少我想不到
我们考虑从左到右枚举右端点,然后拿线段树储存每个点作为当前选的左端点的答案,最后取 max ⁡ \max max就是当前的答案
然后考虑如何更新答案,我们发现,对于当前右端点 i i i位置上的 a i a_i ai​,在 a i a_i ai​上一次出现的位置 [ l a s t + 1 , i ] [last+1,i] [last+1,i]之间答案都应该加上 a i a_i ai​,飞速码完之后测了一发样例,WA了,为什么呢?

因为我们仔细读定义就会发现,对于在 l a s t last last以前的部分,他是不应该计算答案的,因为如果出现相同的一个都不算,所以我们应该把 [ l a s t 2 + 1 , l a s t ] [last^2+1,last] [last2+1,last]这一段都要减掉 a i a_i ai​,emmmmmm l a s t 2 last^2 last2就是 l a s t last last的 l a s t last last啦

然后就好了嗯


T2

[HEOI2016/TJOI2016] 排序

传送门

这周集训的第二题,感觉比第三题难想

这道题其实有复杂度为 O ( n log ⁡ n ) O(n\log n) O(nlogn)的线段树分裂的做法,但是我太菜了不会,所以只能来水两个 log ⁡ \log log的做法了qwq

我们首先考虑这个区间如果只有 0 0 0和 1 1 1怎么做,那么对于一个区间,如果是升序排序,那么就把区间里面所有的 0 0 0扔到左边, 1 1 1扔到右边,其实就是一个简单的区间覆盖,降序也同理

如果不是 0 , 1 0,1 0,1怎么办呢?考虑把他们变成 0 , 1 0,1 0,1序列,二分一下,把所有小于 Δ \Delta Δ的走变成 0 0 0,其他的变成 1 1 1,然后如果最后 q q q的位置是 0 0 0,就尝试把 Δ \Delta Δ减小(因为 0 0 0太多了…),否则就尝试把 Δ \Delta Δ增大

这样我们就可以在 O ( n log ⁡ 2 n ) O(n\log^2n) O(nlog2n)的时间解决,因为 n ≤ 1 0 5 n\leq 10^5 n≤105,时限 4 s 4s 4s,显然可以通过


T3

[HAOI2012] 高速公路

传送门

先说老师给出的做法吧
显然这题要求的就是区间所有情况的和,因为边不好判断,所以可以把边看成点,那么对于查询一段看成点之后的区间,我们要求的应该就是 ∑ i = l r v i t i \sum_{i=l}^r v_it_i ∑i=lr​vi​ti​,其中 t i t_i ti​表示第 i i i条边被访问的次数
根据乘法原理,就是左边的点数 × \times ×右边的点数,注意因为看成了点,所以 i i i点位置其实左边有一个右边有一个都要被算进去,所以我们知道了我们要求的是

∑ i = l r ( i − l + 1 ) ( r − i + 1 ) v i = ∑ i = l r ( r i − i 2 + i − l r + l i − l + r − i + 1 ) v i = ∑ i = l r ( − i 2 + ( l + r ) i + ( − l r − l + r + 1 ) ) v i = − ∑ i = l r i 2 ⋅ v i + ( l + r ) ∑ i = l r i ⋅ v i + ( − l r − l + r + 1 ) ∑ i = l r v i \begin{aligned} &\quad\sum_{i=l}^r (i-l+1)(r-i+1)v_i \\ &=\sum_{i=l}^r(ri-i^2+i-lr+li-l+r-i+1)v_i \\ &=\sum_{i=l}^r(-i^2+(l+r)i+(-lr-l+r+1))v_i \\ &=-\sum_{i=l}^r i^2\cdot v_i+(l+r)\sum_{i=l}^r i\cdot v_i+(-lr-l+r+1)\sum_{i=l}^r v_i \end{aligned} ​i=l∑r​(i−l+1)(r−i+1)vi​=i=l∑r​(ri−i2+i−lr+li−l+r−i+1)vi​=i=l∑r​(−i2+(l+r)i+(−lr−l+r+1))vi​=−i=l∑r​i2⋅vi​+(l+r)i=l∑r​i⋅vi​+(−lr−l+r+1)i=l∑r​vi​​
然后算到这里就很明显了,我们需要维护的是区间的 ∑ i 2 ⋅ v i , ∑ i ⋅ v i \sum i^2\cdot v_i,\sum i\cdot v_i ∑i2⋅vi​,∑i⋅vi​和 ∑ v i \sum v_i ∑vi​
然后维护这几个玩意也不难,就不说了

还有一种做法在这里


T4

[NOI2007]项链工厂

传送门

一个一个操作来说吧,先不考虑旋转的情况
显然是一个线段树维护老司机树也行,维护总段数,左颜色,有颜色

  • s w a p swap swap
    先查询出 x , y x,y x,y的颜色,然后再交换涂色,线段树单点查询单点修改
  • p a i n t paint paint
    线段树区间覆盖
  • c o u n t count count
    查询 [ 1 , n ] [1,n] [1,n],然后如果 l e f t c o l o r = r i g h t c o l o r ∨ s e g m e n t > 1 leftcolor=rightcolor \lor segment>1 leftcolor=rightcolor∨segment>1,就答案 − 1 -1 −1就好了
  • c o u n t s e g m e n t countsegment countsegment
    区间查询

然后考虑如果有旋转情况怎么办

  • r o t a t e rotate rotate
    开一个变量记录一下转了多少就好了
  • f l i p flip flip
    开一个变量记录有没有反转就好了

但是!!! r o t a t e + f l i p rotate+flip rotate+flip就变得极其恶心,细节不少
我们开一个变量 r o t rot rot记录旋转的量, r e v rev rev表示有没有被反转过

当 r e v = 0 rev=0 rev=0的时候,即没有被反转过,那么就只需要考虑 r o t rot rot,那么位置 i i i对应的就是 i − r o t i-rot i−rot(当然要取模之类的)
当 r e v = 1 rev=1 rev=1的时候,我们应该先反转,然后再按上面 r e v = 0 rev=0 rev=0的时候进行求值就可以了

但是!!!这里还有一个问题,就是如果 f l i p flip flip了之后,顺时针的方向也变了,也就是说,在 r e v = 1 rev=1 rev=1的时候,我们还需要把 l , r l,r l,r两个位置交换一下,然后再进行 p a i n t paint paint或者 c o u n t s e g m e n t countsegment countsegment


总结:
线段树很多时候并不处于主导作用,比如T1,T2,只是用来优化时间复杂度的嗯
我觉得各个题的实现的障碍在于

  • T1:确定线段树维护什么量,还有 [ l a s t 2 + 1 , l a s t ] [last^2+1,last] [last2+1,last]要减的问题虽然过不了样例
  • T2:想到 01 01 01做法并从 01 01 01做法推广到一般也就是二分
  • T3:推式子能力或者对于情况的逐步讨论
  • T4:思路不难,但是代码实现细节较多
信奥赛CSP-J复赛集训(DP专题)(22):[CSP-J2020] 方格取数 阅读详情

相关推荐

AI大模型应用性能核心指标:TTFT 与 TPOT 详解

这两个指标专门衡量大模型流式响应性能,是评估用户体验的关键指标。· 是什么:从请求到第一个输出的等待时间· 为什么重要:决定用户的第一印象和响应感知· 优化方向:模型加载、预处理、冷启动优化· 行业标准:最好<500ms,可接受<1.5s· 是什么:每个输出token的平均生成时间· 为什么重要:决定流式输出的流畅度和总完成时间· 优化方向:推理引擎、内存带宽、批处理优化· 行业标准:最好<50ms/token,可接受<100ms/token在Dify/大模型应用中的意义。

lovehu6686的博客 3942

集训总结

呃······ 刚到北京的第一个晚上没睡好,直到天亮才睡着 然后是第一天的课程 参加的是清北学堂的NOI2018提高组基础班 第一天讲的大部分是在学校讲过的课程,然后下午有个考试 本来觉得能考个100+的分,但只考了30 第一题本来能AC,但是编译错误,有一个j 和i 打反了 晚上还郁闷了一会儿 然后第二天就是将各种算法,之前多少都接触过一些 但是老师的手速太快了,目不暇接 ...

weixin_30273931的博客 184

泰山派RK3576开发板部署Qwen3-VL-4B多模态模型实战指南:从模型转换到板端推理全流程

本文提供了在泰山派RK3576开发板上部署阿里Qwen3-VL-4B多模态模型的完整实战指南。详细介绍了从环境准备、模型转换(包括视觉模型转换为.rknn格式和语言模型转换为.rkllm格式)、交叉编译到板端推理的全流程,重点讲解了如何利用RK3576的NPU进行硬件加速,实现高效的边缘AI应用。

weixin_30356433的博客 257

NOIP2018集训总结

由于语文水平有限,精美的桥段,跌宕起伏的情节是不可能的了,也许看起来会很智障 初赛 前排沙发祝贺墙根火。 这次初赛主要在“读程序填空”上失分较多。 先找几个不是原因的原因: 考前那晚宿舍里人巨吵 考前车上补觉失败 没有携带提神物品入场 脑回路短路成性 再找几个能算原因的原因: 试前准备不够充分,知识点没有好好复习 仅局限于做了的初赛题目,没有给自己定更高的目标 对初赛的重视度不够 做法就是...

打工是不可能打工的,这辈子不可能打工的。 685

Ubuntu 22.04 上 Mezzanine CMS 完整安装指南

CMS(内容管理系统)是构建博客、企业官网等静态与动态内容混合站点的核心技术栈;Django 作为 Python 生态中最成熟的 Web 框架,凭借其 ORM、Admin 和安全机制,成为 CMS 开发的首选基础。Mezzanine 是基于 Django 的轻量级 CMS,以开箱即用、零配置多语言和内置 SEO 工具为特色,特别适合中小项目快速落地。在 Ubuntu 这类强调稳定性的服务器操作系统上部署时,关键挑战并非代码逻辑,而是系统层依赖协同——如 Python 版本锁定、SQLite FTS5 支持、

weixin_33508411的博客 304

Docker深度详解:从原理到实践的全方位指南

本文深入解析了Docker容器化技术的核心原理与实战应用。主要内容包括:1) Docker核心架构与优势,对比容器与虚拟机的关键差异;2) 企业级部署方案,涵盖离线安装与多镜像源配置;3) 高级镜像构建技术,如参数化构建、缓存优化及安全扫描;4) 容器生命周期管理,包括健康检查、资源限制及数据持久化方案。文章提供了丰富的代码示例和生产级配置建议,如使用Trivy进行安全扫描、精确控制容器资源等技术细节,帮助开发者全面掌握现代容器化技术。

weixin_42593797的博客 1280

NOIP2015集训总结

又是一年秋天到,对于一介Oier来说,又到了新的一个赛季。最近的两个星期,我经历了人生中第一次停课训练。这样的生活还是第一次经历,有一份新鲜感。 好了。。。废话不多说,直接进入正题——集训总结集训总结总的来说,停课训练还是比较累的(特别是想到回去以后有成吨的文化课要补),但是我也收获了许多,比如说:学了很多新算法,见识了很多新题,了解了很多新思想。。。经过这次集训,顿时感觉初中时候的我就是在玩泥巴

Akakii的博客 1658

学习海康VisionMaster之圆查找

(1):ROI选中位置修正,并且修正信息需要选择刚刚创建的位置修正组件输出信息,这里的话后续的检测窗口一般都需要做这一步,因为大部分的应用场景都是需要用到实时跟踪的。圆查找模块是用于查找指定区域的圆,并且会输出该圆的相关参数信息,比如圆中心点,圆半径,圆是否存在等信息。7):剔除点数:和高级参数里面的剔除距离搭配使用的,就是过滤较远的边缘点,让拟合圆心出来的轮廓更加接近。中的圆查找,相当于就是拟合圆心,这个在视觉软件中的应用也是非常广泛的,通常用于定位,测量项目。

yuhouxiyang的专栏 2102

集训2020.01.18【NOIP提高组】模拟B 组分析反思(【东莞市选2009】9数字 原子核研究 探险者拉罗 【NOIP2014八校联考第3场第1试10.4】选择困难症)

这次比赛打炸了,67.5分,36名,垫底~~~最近我变水了,突然智商下降,再也找不到以前的感觉,陷入小低谷…… T1:【东莞市选2009】9数字,很简单的一道搜索题目。没想到比赛时居然打崩了,把枚举的范围打小了,答案错误37.5。比赛时没来得及检查,也促成了这一事故。总结:以后比赛无论题打没打完,最后15分钟一定要耐心检查。 T2:【东莞市选2009】原子核研究,比赛时,越看越像数据结构,这题的最...

CJZ的博客 414

MFC使用Websocket通讯介绍和实例(附完整源码)

踩坑点,下载了好几个boost版本编译,经常出问题,后来搜索了好久资料才发现如下评论:WebSocket++0.8.2 has been tested through Boost 1.72。WebSocketpp依赖于boost,因此在使用WebSocketpp前需要编译Boost;所以我们直接下载Boost 1.72的windows版的进行安装,安装完成还需要编译;WebSocketpp也叫WebSocket++;服务编译好之后,使用。

weixin_42530684的博客 1171

Diffusion models代码实战:从零搭建自己的扩散模型

这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。.........

沉迷单车的追风少年 1万+

SDUT 2020年SDUTACM暑假集训阶段总结

2020年SDUTACM暑假集训阶段总结 9#501计科1902杜广优 一、学习内容–暑假新学了哪些专题,每个专题刷了多少题 (1) 背包进阶 6 (2) 字典树 3 (3) 线段树 3 (4)线段树扫描线 1 (5)数论基础 5 (6)KMP 5 (7)exKMP 1 (8)manacher 1 (9)二分图最大权 3 二、比赛内容总结(2020年7月27日-8月27日个人赛) (1) VJ先伟老师抓的个人赛(div2 参加场次/总场次)8/9 (2) 比赛中AC多少题(AC题数/总题数)1

sdut_you的博客 270

【车载以太网测试从入门到精通】系列文章目录汇总

物理层测试、数据链路层测试、以太网交换机测试、网络层测试、传输层测试、以太网TCP/IP协议自动化测试、以太网网络管理测试、以太网网络管理自动化测试、鲁棒性测试、SOME/IP测试、SOMEI/IP服务接口自动化测试、DoIP诊断测试、DoIP诊断自动化测试、DoIP BootLoader刷写、以太网网关路由测试、以太网网关路由自动化测试、AVB测试。

测试领域技术分享 3156

【2020暑期海亮集训】Day 5:普及组模拟赛(7.21)

目录引子题目T1-时间(time)【题目描述】【输入数据】【输出数据】【样例输入 1】【样例输出 1】【样例输入 2】【样例输出 2】【样例输入 3】【样例输出 3】【数据范围】【附加知识】【解题思路】【Code】T3-数学(math)【题目描述】【输入数据】【输出数据】【样例输入】【样例输出】【数据范围】【解题思路】【Code】T4-发际线(hair)【题目描述】【输入数据】【输出数据】【样例输入】【样例输出】【数据范围】【解题思路】【Code】 引子 怎么还有10天结束这恐怖的集训呀!整天只有考试,考试

Admin-zx 的博客 671

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HNUCM Contest1092 - 2020年春季ACM集训队热身赛-第3场 比赛题解

Contest1092 - 2020年春季ACM集训队热身赛-第3场 比赛原地址: 传送门 推荐阅读: 【白嫖党】如何把前端学好?看完这篇,直呼:太强了!(历经半个月之作) 文章目录Contest1092 - 2020年春季ACM集训队热身赛-第3场问题 A: 数字分类解题思路AC代码问题 B: 福尔摩斯的约会解题思路AC代码问题 C: 德才论解题思路AC代码问题 D: 锤子剪刀布解题思路AC代...

超逸の学习技术博客 2011

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

西安集训日记

这个学期,我被老师叫去跟一群高一的神犇一起去西安集训,从9号到19号其实就是为了逃课,这篇文章就是我这11天的日记 Day -1 8号我找出了出行学习的计划,从洛谷日报里找了一些有用的东西预习了一下 Day 0 早上坐飞机到西安,中午在外面乱吃了一些东西之后,去买了一堆生(wéi)活(jìn)物品,跟保安说我们是来训练的,就莫名其妙地进去了……吐槽一句,这里的宿舍是真的脏 下午原来想去机房,但是听...

菜鸡Jacky0705的优快云博客 495

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[集训小记]2020寒假集训(1.19-1.22)

期末考试完美爆炸…险些被逼退役… 然后学校请了某NOI集训队大佬给我们讲课… 果然自闭了 这篇博客主要用来记录一下重要的内容。

Panda_Hu's blog 545

浙江农林大学ACM集训队2019级队长退役回忆录(未实际退役版本)

某个弱校集训队队长的退役回忆录

StandNotAlone的博客 8775

2020.7.18【算协集训】[第1次积分赛]

第1次积分赛Problem A. 真假签到题分析代码Problem B. 渣渣伟的贪玩红月分析代码Problem D. 憨憨龙的烦恼 (*)分析代码Problem E. 海王学姐的少女心 (*)分析代码Problem F. 快乐 beng di分析代码Problem G. 一起去爬山分析代码Problem H. 小明们的工资 写的时候人傻的布星,实际上都不算太难的。(刚结束没多久就把基本所有题想明白了,比赛的时候不会可能主要还是因为练的太少吧) 记录一下认清five现实の第一次积分赛的题。 (一些后来没法交

一脸呆滞的博客 2034

NOI2020同步赛爆零记&暑假划水总结

大概从寒假开始都叫暑假吧 所以要从头开始 大概记录一下在学校划水的事吧 day -213(2020.1.17) 放寒假啦!开心 day -204(2020.1.26) 延期开学了 day -77(2020.6.1) 终于开学了… 然后我们一帮人中午就被 gu 放学之后找去谈话,说了说“训练计划” 然后 nls 把我扣在了食堂,等我过去的时候他们差不多都说完了… 于是啥东西都没听见 day -72(2020.6.6) 开学之后的第一次唯一一次训练 做的是 FJ 集训的题好像,反正三道暴力走人,被吊打了/dk

NephrenRuqInsania 669

2026信奥CSP-J暑假集训时间表

2026年CSP-J暑假集训安排建议:集训通常分三期滚动开设,核心时段为7月上旬至8月中旬,包含基础语法(7月7-25日)、核心算法(7月28-8月11日)和赛前冲刺(8月3-15日)三个阶段,另设4天初赛专项短训。全日制作息包含算法讲解、专题刷题和模拟测试,建议零基础学员选7月初班型,冲刺选手优先算法强化营。需注意9月下旬初赛时间,8月底前应完成2轮模考。各机构营期名额紧张,建议提前2-3周报名。

青少年趣味编程 689

中国最新奥数竞赛成绩出炉:南师大附中女生严彬玮满分夺冠!60人国家集训队名单公布...

雷刚 发自 副中心量子位 报道 | 公众号 QbitAI第35届中国数学奥林匹克竞赛成绩公布。同时也意味着新一届中国奥数国家集训队,正式集结。60名中学生。湖北贡献9人、广东7人,上海...

量子位 1397

分光计的调节实验数据_2020全国中学生物理竞赛上海赛区实验考什么?怎样准备?...

2020年复赛实验的范围官方已经公布了34个标准实验当中选择19个作为考试范围其中误差是贯穿始终的指导思想一共18个操作性实验它们是哪些呢?2020上海赛区实验范围熟悉实验比赛的同学可能立刻就发现今年的范围当中又有了历年高频和难点考题“黑盒子”。范围当中有黑盒子的情况下,考到的概率就会很高,因为黑盒子变化多,准备到原题的概率很小。让我们看看今年的其它实验与前两年相比有什么变化?2019上...

weixin_33603105的博客 429

CSP-J初赛集训(0-26课)

CSP-J初赛集训(0-26课)

青少年趣味编程 1478

暑期集训第四周周报

所谓倍增,就是按22的倍数来增大,也就是跳 1,2,4,8,16,32……32,16,8,4,2,1来跳,如果大的跳不过去,再把它调小。拿 55 为例,从小向大跳,5≠1+2+4,所以我们还要回溯一步,然后才能得出5=1+45=1+4;这也可以拿二进制为例,5(101)5(101),从高位向低位填很简单,如果填了这位之后比原数大了,那我就不填,这个过程是很好操作的。想要实现这个算法,首先我们要记录各个点的深度和他们2i级的的祖先,用数组deep表示每个节点的深度,fa[i][j]表示节点i的2j级祖先。

xiaofu123456789_的博客 1220

2020牛客寒假算法基础集训营6

比赛链接 官方题解 A - 配对 贪心+思维 要使得第K大的和尽可能大,利用贪心的思想完成此题。可以发现,如果A1<A2,B1<B2,那么一定是由A1和B2配对较优。简单归纳可知,倒序配对最优。 贪心算法博客讲解 B - 图 图论 其实这道题用tarjan缩点更好写,也可以像题解中说的利用基环树的一些性质进行简单dfs求解 tarjan算法讲解 浅谈基...

c3po 532
上一篇: [HEOI2013] Segment
下一篇: NOIO Round 2 游记
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值