Quiet
  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT

xiwwwix

  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT
Quiet主题
  • codeforces

2025寒假写题记录

xiwwwix
教程

2025-01-22 00:36:44

寒假有很多活要干的样子,但是想做题了(?
flag是寒假结束前上青,下个学期(或者有生之年QAQ)上个蓝

写篇文章记录一下写题,主要用来提醒自己有哪些重要的trick,以及学习一些进阶的算法避免下学期挂了豆哥的课(没错。。作大死()

01.22

F. Firefly’s Queries

前缀和plus,假设最后直接形成的大前缀和数组是f,l到r的区间和等于f[r] - f[l],求f[x]可以分成r/n个完整数组(和为s),以及一段不完整数组
不完整数组的第一位是((r/n)%n) + 1,长度是r%n
想到的一个方便的求法是倍增原数组,然后求这个二倍长数组的前缀和prefix,这样的话这个不完整数组的区间和就是prefix[(x//n) % n + 1 + x%n - 1] - prefix[(x//n) % n]

D. Kousuke’s Assignment

感觉是很熟悉很常见的套路,但是没反应过来QAQ

01.29

玩了一周(霍格沃兹之遗真好玩!(不是)),正式回来学习

打算跟着白书,按照图论、数论、dp、数据结构的顺序过一遍,把书上的洛谷习题用C++敲一遍(C++水平真的太菜了(悲))

先从拓扑排序开始
今天先做了P1113和P4017练手,发现容易弄反出入度QAQ,以及忘了long long查了半天

01.30

P1347
采用了每次输入都跑一遍拓扑排序的做法,但是犯了没有判断重边的错误被deepseek薄纱了,另外它非常有创造力地给出了每次判断队伍长度是否为1以确认是否还存在不确定关系的点的做法,感觉非常巧妙,我后来的理解是比如说有形如A<B,A<C这种关系在,去掉A之后B,C都满足条件,或者说“某一层有不止一个点”,所以不行

题解里还有一个最长路的做法也很好,主要是注意到了以下三点:

  1. 如果能走出来长度为n+2的最长路,证明使用目前为止给的k条关系(边)就能得到所有点的完整序列
  2. 如果在统计最长路时路径长度已经超过了n+2,那么肯定是到目前给的关系(边)中一定有环路的存在(想不明白?细品!一个完整序列怎么可能有重复的点?)
  3. 如果关系输入到最后,发现根本走不到终点,那么就证明无法得出整张序列
上一篇

心双2024数据结构1031-1043题解

下一篇

ds第一次机考记录+题目回忆+题解

©2025 By xiwwwix. 主题:Quiet
Quiet主题