首页 > 其他分享 >集训总结

集训总结

时间:2024-08-22 10:53:18浏览次数:8  
标签:总结 begin end sum mid pmatrix 集训 dp

前言:写于2024年暑假中山集训期间,如果有误,望指出。

20240729 D1

感觉今天整体还行,T1一眼题。T2胡了一个dp,死在没考虑到优化状态。T3裴蜀定理(忘了),T4建模Johnson

  1. dp 有点死板,可以考虑从不同的角度设计 dp 状态,比如交换 dp 的维度和其维护的值。
  2. 数论还是需要巩固,竟然连裴蜀定理都不记得了
  3. 图论建模是关键,还需要加强训练。

20240730 D2

对于上午的dp,还是老问题:状态设计死板。觉得dp还需要巩固的:

  1. 数位dp
  2. 各种优化,包括但不限于斜率优化四边形不等式单调队列
  3. 还需要多加练习

下午是图论基础,感觉还不错,收获了一些神奇思路:

  1. 部分题可以考虑拆点转换为全1的bfs,吞掉 一个 \(\log m\)。
  2. 跑分层图最短路是,如果有负边,但是只在层与层之间,可以考虑对于每一层跑 dijkstra,降低时间复杂度。
  3. Johnson 一样利用换元思想,可以将负边权转换为正的,这样可以使用 dijkstra 来代替复杂度更高的 spfa。

差分约束

这里总结一下 差分约束 系统:

它是有若干基本形式的不等式构成:

\[\begin{cases} x_{u_1}-x_{v_1}\leq w_1\\ x_{u_2}-x_{v_2}\leq w_2\\ x_{u_3}-x_{v_3}\leq w_3\\ \dot\\\\ \dot\\\\ \dot\\\\ x_{u_n}-x_{v_n}\leq w_n\\ \end{cases} \]

可以将这个式子转换为:

\[\begin{cases} x_{u_1}\leq w_1+x_{v_1}\\ x_{u_2}\leq w_2+x_{v_2}\\ x_{u_3}\leq w_3+x_{v_3}\\ \dot\\\\ \dot\\\\ \dot\\\\ x_{u_n}\leq w_n+x_{v_n}\\ \end{cases} \]

考虑使用将一些式子代入其他式子,然后通过不等式的传递性可以发现这好像与最短路有关:

考虑从 \(u_i\) 连一条边权为 \(w_i\) 的边到 \(v_i\),对于两个点 \(i,j\) ,令 \(i\) 到 \(j\) 的最短路为 \(dis(i,j)\) 可以发现它们满足以下式子:

\[x_j\leq dis(i,j)+x_i \]

那么如果我们确定了其中 \(x_i\) 的值,就可以得到 \(x_j\) 的上界。同理,这样知道一个数的值,那么我们可以求出所有与其有关点的上界,当然如果有一个点使得 \(dis(i,i)< 0\) 那么说明该系统无解,因为不可能存在 \(x_i\leq x_i+w_i,(w_i<0)\)。

如果打算求其下界,那么将原式转换为:

\[\begin{cases} x_{v_1}\geq x_{u_1}-w_1\\ x_{v_2}\geq x_{u_2}-w_2\\ x_{v_3}\geq x_{u_3}-w_3\\ \dot\\\\ \dot\\\\ \dot\\\\ x_{v_n}\geq x_{u_n}-w_n\\ \end{cases} \]

这样我们将边权和边的方向取反后跑最长路就行,但是最长路是将边权取反,跑最短路,然后将答案取反后的值,于是解决该问题只需要反转边的方向然后跑最短路,最后将答案取反即可。

20240731 D3

又是模拟赛,感觉我不得行。

T1是奇妙数学题,形式化一下就是:

\[ans=\sum_{i=1}^{n} \lfloor \sqrt i\rfloor\\ =(\lfloor \sqrt n\rfloor)(n-(\lfloor \sqrt n\rfloor)^2)\sum_{i=1}^{\lfloor \sqrt n\rfloor-1}((i+1)^2-i^2)i \]

现在只考虑求和号内的:

\[ans=\sum_{i=1}^{\lfloor \sqrt n\rfloor-1}((i+1)^2-i^2)i\\ =\sum_{i=1}^{\lfloor \sqrt n\rfloor-1} (i^2+2i+1-i^2)i\\ =\sum_{i=1}^{\lfloor \sqrt n\rfloor-1} 2i^2+i\\ \]

后面可以等差数列求和,但是前面是一个自然数二次幂和,赛后知道 \(\sum\limits_{i=1}^ni^2=\frac{n(n+1)(2n+1)}{6}\) 但是赛时的我不知道,于是花了 1.5h 推式子,我是通过分治的思想,假设我们要求 \(\sum\limits_{i=l}^r i^2\),那么可以取区间中点 \(mid=\frac{(l+r)}2\) ,然后将序列转换为:

\[(mid+l-mid)^2+\dots +(mid-2)^2+(mid-1)^2+mid^2+(mid+1)^2+(mid+2)^2+\dots +(mid+r-mid)^2\\ \]

将式子暴力拆开得到 (令 \(i=mid\) ):

\[(i^2+2(l-i)+(l-i)^2)+\dots +(i^2 -4i+2^2)+(i^2-2i+1^2)+i^2+(i^2+2i+1^2)+(i^2+4i+2^2)+\dots+(i^2+2(r-mid)+(r-mid)^2)\\ =(r-l+1)i^2+2(l-i+\dots-2-1+1+2+(r-i))i+((l-i)^2+\dots +2^2+1^2)+(1^2+2^2+\dots+(r-i)^2) \]

可以发现 \(i\) 的一次项系数要么为 \((l-i)\),有么为 \((r-i)\),所以这一层可以 \(O(1)\) 求解,然后转换为两个区间砍半的完全一样的子问题,然后可以分治求。时间是 \(O(\log n)\) 的。

推广一下,如果是求 \(\sum\limits_{i=1}^n i^k\) 那么依然可以考虑分治,因为每一层只会留下不超过 \(k\) 项,用二项式定理展开以后可以找到规律,这样复杂度是 \(O(k\log n)\) 的,虽然劣于 \(O(k)\) 的拉插,但是比较适合不会拉插的同学零时应急使用。

T2一眼题,不说。

T3警示可以依据时空和数据范围猜算法。

20240801 D4

上午是字符串,感觉还不错,主要是字符串练习了不少,但是对于 Manacher 和 Z函数的理解不够深刻,还有就是 kmp 和 AC自动机衍生出来的 fail 树的运用。

下午是贪心,最大收获来自反悔贪心:

反悔贪心

他类似模拟网络流,网络流是建反边来做到反悔的,而反悔贪心则是记录前面的选择,在一次决策是,如果发现无法加入,可以考虑删掉前面决策中最劣的一个,看看是否会更优。

Exchange Argument

交换贪心寒假dottle讲过,这个主要是用在如果交换相邻两位不会影响除了这两位以外的任何一个,那么可以考虑看在什么情况下交换以后更优秀,以此推到出应该按照什么来排序,需要注意的是判断式需要有传递性。还有就是对于式子 \(\max(a,b)>\max(c,d)\) 满足必须满足 \(a>c\&\&a>d\) 和 \(b>c\&\& b>d\) 之间的一个,有时可以通过这个拆掉 \(\max\) 和 \(\min\) 的式子。

20240802 D5

一句话总结:我唐完了!!!

T1可以说是一眼题,类似记忆化搜索的模拟(我在说什么?)可是最后死在了等比例缩放上(改了3.5h+没改出来,直接导致心态炸裂)。

T2原则上是可以推出来的(但不一定能码对),但是因为T1的影响,没有仔细思考,同理还有T3的40分+T4的30分。

这套题还行,警醒我以后要合理分配时间,不要因为某道题没改出来导致心态崩了,暴力一定要打。

在算法上的启发是:没有单调性的地方也可以二分查找,参考T3或 Problem - E - Codeforces ,同样是dp的优化:通过改变目标函数以达到缩小状态数的目的。

(码力不行,写了3个暴力,一个都没调出来,喜提0pts)。

20240803 D6

上午讲的是数据结构,感觉收获不大,主要是没有什么新的trick,但是可能要将树分块上日程了。

下午是组合数学,收获好像也不是很大,但是我知道我的数论是不行的,要加训。

20240804 D7

又是被T1薄纱的一天,一开始T1花了1.5h调,没调出来,吸取上次的教训先去写了后面的暴力,然后又花了近1h重构T1(虽然最后过了,但是洛谷0pts,大抵是数据水),T2胡了假贪心,T4数组开小了又挂了20pts。

20240805 D8

上午DS,主要问题在于对模型的剥离与搭建不太熟练,一句话就是:只会板题

下午网络流,问题主要在减免。

20240806 D9

上午是数论,关于组合数学的式子,对于我来说应该从组合意义出发可能更方便记忆,下面从组合意义角度(如果可以)总结一下组合数的性质:

  1. \(\begin{pmatrix}n\\m\end{pmatrix} =\begin{pmatrix} n \\ n-m \end{pmatrix}\) 原来是 \(n\) 中选 \(m\) 个,变形后可以理解为从 \(n\) 中选 \(n-m\) 个不选。
  2. \(\begin{pmatrix} n \\ m \end{pmatrix}=\begin{pmatrix} n-1 \\ m \end{pmatrix}+\begin{pmatrix}n-1\\m-1\end{pmatrix}\) 这可以理解为固定一个数的情况,如果选这个数,那么只需要从另外 \(n-1\) 选 \(m-1\) 个;如果不选这个数,那么需要在另外 \(n-1\) 个数中选 \(m\) 个。同时这也是杨辉三角的递推公式。
  3. \(\sum_{i=0}^n \begin{pmatrix}n\\i\end{pmatrix}=2^n\) 这类似状压枚举。
  4. \(\sum_{i=0}^m\begin{pmatrix}n\\i\end{pmatrix}\begin{pmatrix}m\\m-i\end{pmatrix}=\begin{pmatrix}n+m\\m\end{pmatrix}(n\geq m)\) 可以理解为将原集合划分成长度为 \(n,m\) 的两段,分别枚举从这两段中选几个,根据乘法原理计算。
  5. \(\sum_{i=0}^n\begin{pmatrix}i\\k\end{pmatrix} =\begin{pmatrix}n+1\\k+1\end{pmatrix}\) (组合意义未知)。但是可以从杨辉三角上考虑,因为 \(k\) 一定,那么这些数在一条对角线上,通过杨辉三角的计算方式可以推出
  6. \(\sum_{i=0}^n (-1)^i \begin{pmatrix}n\\i\end{pmatrix}=[n==0]\) (组合意义未知)。
  7. \(\begin{pmatrix} n \\ k \end{pmatrix} =\frac{n}{k} \begin{pmatrix} n-1 \\ k-1 \end{pmatrix}\) (组合意义未知)。

容斥是个好东西,可以从小学三年级研究到高中三年级,主要思想大概是反着来减去不合法的。但是对于 Min-Max 容斥、反射容斥等还有待深究。

二项式定理

\((a+b)^n=\sum_{i=0}^n\begin{pmatrix}n\\i\end{pmatrix}a^{n-i}b^{i}\)

这是个很优美的式子,因为这将多项式和组合数学联系在一起了,因为对于 \(a^{n-i}b^i\) 的系数可以理解为从 \(n\) 项中选 \(n-i\) 个 \(a\),另外的是 \(b\)。

卡特兰数

和很多计数问题有关,举几个例子:

  1. \(n\) 个点可构造的不同二叉树个数
  2. 长为 \(2n\) 的合法括号序的个数。

形式化定义是:

\[c_n=\begin{cases} 1 &n\in \{0,1 \} \\ \sum_{i=0}^{n-1} c_ic_{n-i-1}&n>1 \end{cases} \]

具体参考多项式

下午模拟赛:当时赛时策略是主攻 T3,T4(数组开小,挂了10pts),因为当时我可以确定这两个是我会的DS,T1很明显是二分+状压DP,但是DP没有推出来。对于不会的题,赛时策略是先攻部分分,然后从特殊性质下手考虑正解。

20240807 D10

模拟赛T1原则上是应该场切的,但是死在了二维差分,所以对于一些基础的数据处理要牢记,例如:高维差分/前缀和,二分等。

20240808 D11

上午是图论专题。

竞赛图这是一类特殊的有向图,及两两点间均有一条连边,可以证明将竞赛图缩点以后是一条链,对于部分题可能会用到这样特殊的性质。

下午讲的是计数专题,对于计数的几种方法:

  1. 直接暴力枚举
  2. dp
  3. 容斥
  4. dp套dp
  5. 组合数

等等。

这里主要总结一下dp套dp:

dp套dp

这是dottle讲过多次的,对于一部分计数我们可以考虑如何使用最简单判定一中情况是否满足条件,那么可以将这个建成一个自动机,然后在外侧dp是在自动机上转移,例如P5279 [ZJOI2019] 麻将 (可能有点难,不一定总结的好)对于这个,我们将所有的牌型压到内部的那个dp自动机中,然后我们在外面的dp上游走,但是我们发现内部dp直接转移的话状态过多,并且有若干无用状态,于是可以先跑一边自动机,用一个map压状态。

20240809 D12

对于今天的模拟赛T4展露出对组合数的不熟。

待处理:

  1. 裴蜀定理、欧拉定理、威尔逊定理、中国剩余定理等数论基本知识
  2. Johnson(已学20240730)
  3. 巩固数位dp
  4. 巩固dp优化,主要是学习一下四边形不等式(还不会)
  5. 复习Manacher和Z函数
  6. 树分块
  7. 容斥:Min-Max 容斥、反射容斥等
  8. 斯坦纳树
  9. 平面图欧拉公式
  10. 组合数学

标签:总结,begin,end,sum,mid,pmatrix,集训,dp
From: https://www.cnblogs.com/Guchenxi0971/p/18373361

相关文章

  • 2024暑期第二次集训总结(202408)
    坐标cssyz08.12身体不适,请假在家,随便写写,把当天任务写了一下,结果你谷RMJ炸了,直接躺平。08.13上午原定9:00-12:00出去比赛,让我们8:00到,到了之后又没事做,直接与同学联机MC,后面开考,以为是csp-j难度,结果红+红+下位橙+红,14分钟秒了。(抽象)回到机房赶上思维训练,看了......
  • 2023年终总结
    今天才从洛谷搬过来的跟个风,看大家都写了。回顾2023八下主要精力全部集中在了whk上,因为初二没有拿到普一,对自己搞OI也没啥信心。但是学文化课也水的要命,感觉自己就是个摆子,上网课就知道玩,作业就只做自己喜欢做的,比如历史卷子,语文的原创分析思考和鉴赏文学类作品的总结报告,数......
  • 2024.8.21 总结(集训 考试)
    上午感觉不错,下午改不出题,晚上破防。简略思路:T1本质应该是DP维护一次函数。不会正解。晚上看了好久、好多篇题解还是不会。有点静不下心来看比较长的题解。放点别人的题解,有空再来研究:https://www.cnblogs.com/flywatre/p/17236732.htmlhttps://blog.51cto.com/u_1530083......
  • 引发C++程序内存泄漏的常见原因分析与排查方法总结
    目录1、概述2、内存泄漏与程序的位数3、调用哪些接口去动态申请内存?4、引发内存泄漏的常见原因总结4.1、通过malloc/new等动态申请的内存,在使用完后,没有调用free/delete去释放(也可能是调用了上面讲到的HeapAlloc或VirtualAlloc等API接口)4.2、函数调用者调用内部申请内存......
  • 『模拟赛』暑假集训CSP提高模拟26
    Rank打得一般,倒数第二场了。。A.博弈直接搬了牛客的一套题。一眼没思路,模了一会放弃直接去打T2了,后来把\(\mathcal{O(n^2)}\)暴力打了拿30pts。正解用到了异或哈希。首先确定合法的数量即为总对数\(\frac{n(n-1)}{2}\)减去不合法的数量,而比较显然的,不合法的判断......
  • [赛记] 暑假集训CSP提高模拟24
    与和100pts签到题但还是做了很久。。。考虑与的条件,可以发现,如果将$a$转化成二进制,那么二进制上为$1$的位置$x$和$y$都必须是$1$,所以首先将$s$减去$2\timesa$,然后再判断一下$(s-2\timesa)\operatorname{and}a$是否为$0$即可;赛时用......
  • 【题解】Solution Set - NOIP2024集训Day12 树上启发式合并
    【题解】SolutionSet-NOIP2024集训Day12树上启发式合并https://www.becoder.com.cn/contest/5472「CF600E」Lomsatgelral直接dsuontree。记录每一个颜色的出现次数。「IOI2011」Race之前是用点分治做的。考虑dsuontree。每个子树内维护到根节点的距离为\(x\)......
  • 2024暑假集训测试30
    前言比赛链接。T1普及了一下异或哈希,T2、T3赛时应该算乱搞题,还搞挂了,T4高级平衡树题,不太可做。原题全部出自:2022牛客OI赛前集训营-提高组(第四场)。T1博弈部分分\(30pts\):\(O(n^2)\)暴力。正解:不难推出必胜策略就是\((x,y)\)路径上每个边权出现的次数不全为......
  • 暑假集训CSP提高模拟26
    赛时rank17,T118,T250,T30,T440博弈异或hash。当crying必胜时,一定为有一个权值出现次数为奇数,证明是显然的。然后就可以考虑异或了。将每个相同的权值换成一个很大的随机权值,然后在树上异或。两个点之间的路径为\(dist_x\oplusdist_y\oplusdist_{lca}\oplusdist_{lc......
  • 一文总结MySQL各种锁
    概述对于后端Java开发人员来说,锁主要有Java锁和DB锁。Java锁,请参考一文总结Java开发各种锁。本文所述的DB锁,可能会局限于MySQL数据库。隔离级别与锁的关系在RU级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突在RC级别下,读操作需要加共享锁,但是在语句执......