首页 > 其他分享 >杂题总结

杂题总结

时间:2024-09-04 10:15:28浏览次数:11  
标签:总结 那么 luogu 可以 texttt 括号 注意 杂题

杂题总结

记号约定

不难注意

意味着我在初见的时候想到了

难以注意

意味着我没有注意到

P8421 [THUPC2022 决赛] rsraogps

P8421 [THUPC2022 决赛] rsraogps - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

首先套路性扫描线,然后这个问题就变成增量构造。

不难注意

不知怎么的,就注意到当扫描到 \(x\),往前暴力更新的时候过了一个界限就不会再更新了,这是因为这三个运算的性质,越与二进制中 1 的位置越少,越或二进制中 0 的位置越少,越 gcd 因数就越少,所以暴力枚举这个界限的时间复杂度好像有一个上界。

没错,就是 \(\mathcal O(\log v)\) 的。考虑什么时候停止枚举,对于与和或,当不再变化的时候停止,每枚举一次 0/1 的数量都会下降,至多枚举 \(\mathcal O(\log v)\) 次。而对于 \(\gcd\),当不再变化的时候停止吗,最坏情况下每一个数都是后一个数的倍数,此时由于值域限制,也是至多 \(\mathcal O(\log v)\) ,即每一个数是后一个数的 \(2\) 倍。

那么找到界限之后,前面的部分就不变,怎么维护?

实际上,界限之前的内容就只会变化上一次变化的内容。

难以注意

怎么维护呢?

我们可以为每一个位置记录上一次变化的多少(再为这个做前缀和),然后打上时间戳。

P5292 [HNOI2019] 校园旅行

[HNOI2019] 校园旅行 - 洛谷

难以注意

其实这题应该注意到朴素 dp 做法。因为我们要求的是回文串相关的信息,我们就考虑构造回文串可以用中心扩展法,那么如果已经有一条路径,从两头继续扩展也该是合法路径。这时我们发现这好像就是一个转移。验证一下,由于重复走环没有意义,所以这种做法是正确的。


哎呀,然后你就发现 30pts 到手了,那么这不得不令人怀疑 100pts 的做法是不是优化这个。

那么我们考虑如果一条合法路径的两头 \(x,y\),分类讨论:

  • \(x\) 旁边有 \(\texttt{0-1}\) 边,那么通过走若干次,可以扩展 \(\texttt{1-0-1-0}\) 这样

    如果决定不回来,就能 \(\texttt{1-0-1}\) 这样

  • \(x\) 旁边有 \(\texttt{0-0}\) 边,那么可以走若干次, \(\texttt{0-0-0-0}\) (偶数长度)

那么我们现在发现,来回走 这个操作在一定程度上可以充当走环的作用,那么如果可以用 来回走 来代替环的功效,就不需要再保存环了!

那么究竟可不可以代替呢?

就比如如果 \(x,y\) 旁边都有 \(\texttt{0}\) 连通块,原本如果都想去到连通块内的一个点 \(x',y'\) 还要保持合法,那么也许在连通块里面绕了若干次,如果这个若干次我们可以通过来回走搞定,那么不就好了吗?

但是来回走因为要回到原地,所以只能处理中间绕了偶数下的,如果连通块中间没有长度为奇数的环,那么这样就可以替代,由于两边可以多绕几圈来同步,所以替代之后能不能匹配是不需要担心的,那么我们只需要保留连通性,那么保留生成树。

如果有只因环,那么只有这一条边来回走就不够了,可以额外连接一个自环来允许改变奇偶性。

对于 \(\texttt{0-1}\) 的连通块也是这样。所以千万别再理解成相同颜色连通块缩点再保留生成树了,是在只有异色边的子图上操作。

我们可以发现,不含有奇环的图,就是二分图,染色判断即可。

省略:[SCOI2009] 粉刷匠 (luogu.com.cn) 原因:太简单

P5290 [十二省联考 2019] 春节十二响

[十二省联考 2019] 春节十二响 (luogu.com.cn)

不难注意

我们可以考虑链的情况,显然就是把两边最大的合并到最大的,然后一路合并下去。

那么这个可不可以推广呢,不知怎么的就可以注意到,他是可以的,简单思考一下,如果已经得到一个子树的最优分组,那么肯定不能再次合并,所以两边是一对一合并的关系,因为两棵子树之间没有任何其他限制,感性理解满足最优子结构性质。利用启发式合并可以做。

P5840 [COCI2015] Divljak

[COCI2015] Divljak (luogu.com.cn)

有点难以注意

考虑对于 \(S\) 建立 AC 自动机,那么添加 \(T\),在 AC 自动机上面跑的时候,我们发现如果是求出现次数,那么就是经典问题,求子树和即可,但是这样会重复。那么我们不可以直接在 fail 树上加到根,我们还得减去重复部分,像虚树一样,如果把所有点按照 fail 上的 dfn 排序,那么重复部分在 fail 树上就是一条到根的路径,这样就好处理了,每次询问统计子树里面的修改标记即可。

但是我想了个根号分治,思考流程在下面:

试试根号分治 
当 n 大的时候,那么 每一个字符串长度小设为 l 
字符串 hash 开 map 总共  O(len*l) 的
此时 ---- O(len*l) 
当 n 小的时候,那么 字符串每一个长
可执行暴力跳 fail(记录上面上一个end在哪) 的做法每次 O(n) 
此时 ---- O(qn) 
这样阈值取 B=len/sqrt(q) 为 6324 是最优的
大概 6e8 的样子 

当然,hash 表常数过大,过不了。可是实际上只做当 n 小的算法也可以通过。

P3215 [HNOI2011] 括号修复 / [JSOI2011] 括号序列

[HNOI2011] 括号修复 / [JSOI2011] 括号序列 (luogu.com.cn)

难以注意

首先区间翻转明示我们要用平衡树。

应该先模拟一下,能够发现最后一定剩下若干右括号后面跟着若干左括号。根据经典套路,令 \((=-1,)=1\),可以知道剩下右括号的数量就是前缀最大值,剩下左括号的数量就是后缀最小值(允许为空)。用平衡树可以简单维护。

标签:总结,那么,luogu,可以,texttt,括号,注意,杂题
From: https://www.cnblogs.com/haozexu/p/18395927

相关文章

  • LLM大模型基础知识学习总结
    大家好,我是Edison。在这个已经被大模型包围的时代,不了解一点大模型的基础知识和相关概念,可能出去聊天都接不上话。刚好近期我也一直在用GPT和GitHubCopilot,也刚好对这些基础知识很感兴趣,于是学习了一下,做了如下的整理总结,分享与你!一句话描述GPTGPT:GenerativePre-TrainingTra......
  • 八股文总结
    项目八股面经简历整理抽奖大转盘一般项目中都是MVC,做起来简单,随着项目变大,service层,很多不同业务的接口和实现类,导致项目结构很乱,dto,vo系统内部数据流转类,维护和迭代不太好做,DDD在一定程度上解决了这个问题,domain领域层,把不同业务以合理的角度区分为不同的领域,也就是不同包,不......
  • Hadoop 第七周总结
    Hadoop第七周总结在第七周的学习中,我深入探讨了Hadoop生态系统中的几个关键组成部分,重点包括HadoopMapReduce、HDFS(HadoopDistributedFileSystem)、YARN(YetAnotherResourceNegotiator),以及Hadoop的调优策略。以下是本周学习的主要内容和总结:1.HadoopMapReduceMapReduce......
  • Hadoop 第八周总结
    Hadoop第八周总结在第八周的学习中,我进一步探索了Hadoop生态系统的高级功能和工具,主要集中在Hadoop的优化技巧、数据处理框架的整合以及大数据应用的实际案例。以下是本周学习的主要内容和总结:1.Hadoop的性能优化在处理大规模数据时,性能优化至关重要。本周我深......
  • 8.30 上午 becoder 模拟赛总结 & 题解
    T1密码当时想到解法了,却依然认为自己不会做,我真是个人才。结论:对于$\foralli\in[1,n)$,满足密码不是$a_i$的因数,且密码是$a_k$的因数,设满足条件的最小值为$g$则答案为$\frac{n}{g}$。一种最好想的做法:枚举$\gcd(a_k,n)$的因数作为$g$,并枚举$i\in[1,n)$,判断是......
  • 8.31 上午 becoder 模拟赛总结 & 题解
    T1四个质数的和赛场亲测搜索+小剪枝可以得到70pts。考虑$O(p(V)^2)$枚举任意两个质数的和,其中$p(V)$表示$V$以内质数的个数。然后开个数组记录下对于每种和的记录有多少种情况,查询时for循环扫一遍即可,详见代码。复杂度去掉质数筛$O(p(V)^2+tn)$,代码贴在下面(100pts)......
  • 8.31 下午 梦熊联盟 NOIP 模拟赛总结 & 题解
    T1北极星一个比较好想到的点是从后往前枚举数,计算得出它需要的操作次数,然后给所有前面的数都加上这个操作次数,这样就把每个数独立出来了。所以这道题就变成了如何快速通过这些操作得到一个指定的数。观察大样例的输出,发现每一个数都是11?1?1?的形式,其中问号为+或c,我们可......
  • 9.1 上午 becoder 模拟赛总结 & 题解
    T1货车运输Kruskal重构树模板,没什么好说的,不会的把自己重构了算了,跳过。T2Slagalica可以发现拼图1和2、3拼起来还是拼图1,拼图4和2、3拼起来也还是拼图4,这两种拼图还都不能和自己拼,所以我们可以看作只有拼图1和拼图4来做。对于边界拼图分别是5、7的情况,只有......
  • 8.31 晚上 ABC369 总结 & 题解
    打了一天的比赛。ABCD太水了,直接放代码链接得了,点字母就能看对应代码。E-SightseeingTour看范围$N$只有$400$,所以我们可以先用floyd搞出任意两点间的距离。对于每次询问,发现$K_i$只有$5$,所以可以直接深搜应该走哪座桥,和应该走到哪一端。时间复杂度$O(N3+QK_i......
  • 9.2 上午 becoder 模拟赛总结 & 题解
    T1加法最开始看了好久没想出来,先做T2去了,然后回来想了一会儿发现自己可能智商有点问题。看到求最小值最大,第一反应肯定是二分,那我们怎么应该怎么check呢?考虑顺次枚举序列$A$中的每一个数,然后如果这个数没有达到mid的要求,我们肯定是要添加区间的。那么我们怎么添加区......