代码源CSP-S模拟赛Day7-9赛后总结

news/2024/12/21 20:24:44/文章来源:https://www.cnblogs.com/yxans/p/18447111

代码源CSP-S模拟赛Day7-9赛后总结

Day7

赛时

先扫一遍题,T1 显然数位 dp,感觉放在T1应该不难,而且题面有一种很亲切的感觉,感觉很可做。T2 简单思考一下发现最终合成的数就是 \(a_1\)\(a_2\)\(a_3\)……,\(a_n\) 这 n 个数填正负号再加上一个 k 的倍数,估计会有一些比较智慧的手法,感觉很有趣。T3就是简单思考了一下自环和重边的处理,然后就去看 T4了。T4 领域查询好像之前jsy模拟赛里出了一道题,题目很像,那道题好像用了树剖。这道题貌似是进阶,但前几档大众分有线段树,以及还有一档或两档不是那么大众分的好像能预处理然后在线搞,给我一种跃跃欲试的感觉,于是计划给这道题留的时间比较多。

T1 一眼数位dp,首先 n 个数或起来的值等于和显然各个位置上有且只有一个数是 1。于是就先码了一个 55 分的 dp,\(f_{i,mask}\) 表示前 i 个数或为 j 的方案数。正解不怎么会了,原因是忘了数位 dp 的状态设置是什么了,我好像记得没有开过数位 dp 的专题

T2 想到给这些数添加正负号之后 15分暴力分就直接出来了。但我没有想到怎么确定最后的正负号到底怎样才最优。感觉合法的方案数肯定不唯一,想到了 \(n^3\) 的dp可以处理出来所有合法方案,但数据范围没有给这一档部分分,感觉可以再想想不想耽误太多时间决定不码暴力直接跳,等会回过来再想,于是就先跳了。

T3简单想一下,发现只会暴力,但看时间发现已经十点多了,我还计划着给T4多留时间呢,暴力都没码就撤了。

T4码dfs序和线段树的时候由于函数与Sub1的函数重名,害我de了十几分钟。然后想了一下不大众的挡,之前感觉能拿40 ,发现有一个超了,但也还多了十分。\(O(10n)\) 的预处理,迅速开码,然后是痛苦的debug,大概在11点20多的时候交上去发现 TLE ,我本地测了一下,答案是对的,但跑了8s,想了一下,菊花图可以把它卡掉,GG。此时距离比赛结束不到40分钟。

T2,T3暴力都没码,我速速的30分钟码了2道题的暴力,此时11:57。沾沾自喜,以为稳了,这时我迅速提交T2,发现edge炸了……慌乱之下问了雪月花果断切谷歌,结果提交T2的时候由于太急多点了几下,直接给我提示15s后再提交,此时北京时间11:59分,省去中间焦急的等待过程,最后一分钟极限交上两道题,并且成功选择了C语言(由于之前没有用谷歌登过代码源),于是两题爆蛋。

最后40分钟心态爆炸了,犯了许多很糖的错误,如果我稳一点,至少BC的暴力分能拿。以及以后不要再像当时一样T2T3暴力都不码,直接去做数据结构了。

赛后

T1 大概是一个很典的数位dp,如果你状态设置对的话,A 掉还是比较容易的,并且正解的状态也是很经典的状态设置,\(f_{i,mask}\) 表示从高到底前 i 个 1 分配,mask 表示哪些位置被“卡满”了的方案数。转移是显然的。我们只需枚举每个数,如果它被卡满了,且 \(r_i\) 的这一位是 0 ,那么 1 就不能给这一位,否则就可以给,正常的转移即可。

T2 想到 \(n^3\) 可以处理所有方案了,但没有想到竟然还有神秘规律,打表!!!!

T3 是在生成树上大胆贪心,基本懂了,T4 是跑 bfs 序,存下每个点第 i 层的区间解决邻域的修改查询,子树修改查询怎么处理呢?感觉不是很会啊。

T1 T2 已订,T3 T4 待订。

Day8

赛时

T1 读完题后忘记了数据范围,以为 n 是一个 2e5 级别的,于是以为这是什么神秘贪心,神秘性质题,在草稿纸上手玩了30分钟式子,有了一个初步的dp想法,但是复杂度很高,于是码了个暴力就撤退了。

T2 首先随便搞了一个较复杂的 n^3 做法,枚举 i,枚举 k,再枚举 \(a_j\) ,预处理各个颜色的前缀和,把i到k之间的\(a_j\)个数乘上\(k\)后面的个数即可。简单调了个十分钟,随后考虑下一个 \(n^2\) 的档。我们在纸上画画图发现可以直接枚举 k 和 \(a_j\) ,然后预处理k前与k颜色相同的位置中间的k的个数以及有多少个i覆盖到它,做一个类似带权前缀和的东西,再做一个定义类似的后缀和。预处理是 \(n^2\) 的,统计答案也是 \(n^2\) 的。但是这个思路很使,细节很多,对着那么多式子硬调到9:30,就交了个 \(n^3\) 上去,撤退了。

T3 一看数据范围,以为是什么神奇且逆天的贪心,再加之这时 whrdalao以及 xueyuehuadalao貌似(好像)都过了 T1,于是迅速跳了 T4 ,码了个暴力,回头看T1了。

觉得T1 没准诈骗,回头看了眼,好家伙,n<=100……,于是开始考虑了一下 dp 的细节。首先这个dp我们得从后往前d,原因是你从前往后d是有后效性 的,你不知道你后面到底打多少次,无法统计贡献,所以 初步设置状态是 $f_{i,j}表示考虑从 n 到 i ,你总共加了 j 的伤害的最大总伤害。发现对于 2 操作是无法转移的。纸上手玩一下发现这玩意儿转移还需要一个攻击回合下标和,于是状态就是这三个东西,差不多是 1e8 级别的,转移显然。A的时候差不多比赛也接近了尾声。最后20分钟都在调T2 ,不出意外 \(n^2\) 没有调出来,不过值得庆幸的是第一遍码的时候没有注意到取模,第二遍加上了,有惊无险没有挂分。

赛后

T2 首先题解 \(n^2\)的做法简洁明了。直接枚举 j 和 k ,然后前缀和统计一下前面的 \(a_k\) 数和后面的 $a_j $ 数,乘起来。正解好像是个根号分治 ,出现次数大于 B 的……完了完了,忘了。
T3 竟然就分讨+模拟,赛时尊嘟被吓到了。
T4 不是很懂,而且讲得时候还有什么and卷积什么的,畏惧了。
T1 T3 已A,T2 T4待订。

Day9

赛时

T1首先想到了最终的糖果数一定是一个定值,为所有糖果 & 起来的值。然后直接就用这个东西码了个你\(n^3\) 区间dp,发现同机房dalao们基本都过了,很慌,并且此时时间已经是开赛快一个小时了,所以就跳T2了。

T2好像做过原,也忘了什么时候的事了,由于1个小时还没有 AT1,心态有点炸,当时不敢细想T2 ,知道T2 码量大,直接考虑暴力了,但是考虑我想了个暴力写完调完发现T了,仔细思考后发现我对于多个乘法用了乘法分配率,将n个数分别与3相乘再乘一块变成了n个数乘一块然后乘3……,暴力码炸了心态更崩了。

当时想稳住心态,决定无论怎样T1 必须A,不然后面的题肯定做不好。果断回去。仔细思考了一下,我们可以把原序列分成若干段,这几个段满足段内异或和为整个序列的异或和,发现最优的情况下就是每个段的长度减一再相加。接下来是怎么划分的问题,不妨假设只要当前异或和正确了,就开新的一段,这样做一定是优的,因为你考虑我把后面的那个数划给这一段的话除非后面的所有数都构不成一个正确的异或和,否则的话我这个数往哪个段上合并均可。如果后面的数都合不成正确的异或和的话他们所有的数肯定都要往这个段合并,我们直接特判掉就行了。于是做完了。

T3 一开始理解错题意了,我还疑惑你直接给 n 不就行了,给我序列干啥。大力推到了一波式子,用组合数公式胡搞了几分钟,发现可以 O(n)求,我心想,就这么简单???于是果断开码,然后直接过样例了,交上去后面的都Wa 了。感觉式子很对,但不知道为啥,打表输出了发现程序完美的执行了我的思路,此时剩30分钟,T3T4暴力没码,于是跳 T4 码了暴力回来,在最后15分钟的时候读懂题意了,速速码了个若只暴力,然后又想了个25分的,速速码了一下,成功在比赛结束后第 0.0001s 完成。

这场打炸了,签到做太久,而且T3理解错题意了,直接把dp题整成数学题了,前面太急了,后面太糖了

赛后

T2 是贪心,\(\frac{n^3}{w}\)判掉无解。接下来考虑最坏情况每行每列都操作,由于保证有解,我每行找到最多有多少列是互相相等的这些列我横着涂,其他的我竖着涂。再在列上也搞一遍就行了。
T3 是简单dp,没啥好说的,都怪我太糖了。
T4 是图论好题,离线的部分听懂了,在线的k=1听懂了,k>1的倍增没搞清楚,待订,T1T2T3都订了。
感觉这场的问题就是心态和时间分配,其实T3比T1简单,但我没时间做了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808102.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

30. 协程

1.协程的概念 1.1 定义 进程是操作系统内部运行的程序 线程是进程内部运行的程序 协程是线程内部运行的程序 协程是单线程下的并发,又成微线程,英文名coroutine 1.2 协程的优点协程切换的开销更小 GIL锁导致同一时刻只能运行一个线程,一个线程内不会限制协程数,单线程就可以…

.net core 安装服务

https://www.jianshu.com/p/e1b3b61f876a使用NSSM 后面的代码演示以Asp.net Core 2.1作为演示,其他.Net Core方式一致。 1、确保.Net Core程序可以正常运行 先把Asp.net Core发布,然后直接运行dotnet命令,确保程序可以运行并访问 2、使用NSSM安装dotnet 下载NSSM,使用命…

vs2015安装包丢失或损坏解决工具 或者不能启动

打开“本地组策略编辑器”(gpedit.msc)。展开“计算机配置”>“管理模板”>“系统”>“Internet 通信管理”,然后选择“Internet 通信设置”。选择“关闭自动根证书更新”>,“禁用”,然后选择“确定”或“应用”。  下载最新的组件版本(备份的) https://lea…

uboot 启动自编写程序的方式

uboot 启动自编写程序的方式 uboot 存在 boot 命令。 自己最初在尝试撰写串口程序时,选择了使用汇编来完成。 在这段时间,自己使用 go 命令来尝试载入程序 先是在 Ubuntu 上搭建 tftp 目录 # /etc/default/tftpd-hpaTFTP_USERNAME="tftp" TFTP_DIRECTORY="/ho…

10.Java集合框架_List接口

集合与数组的区别数组:长度开始时必须指定,而且一旦指定,不能修改。 保存的必须为同一类型的元素。 使用数组进行增加/删除元素比较麻烦。集合:可以动态保存任意多个对象,使用比较方便。 提供了一系列方便操作对象的方法: add、remove、set、get。 使用集合添加,删除新元…

20240924

[牛半仙的妹子 Tree(tree)](http://ac.robo-maker.cn/d/contest/p/ZY1044?tid=66f28cd11bca2159e88c8fb0) 我们会发现其实牛半仙发癫时就等于将以前的标记清空,从头开始,所以我们可以考虑根号分治,如果两个牛半仙发癫的时间间隔小于 \(\sqrt n\) ,那么我们可以直接暴力枚举两…

『模拟赛』冲刺CSP联训模拟2

『模拟赛记录』冲刺CSP联训模拟2Rank 不重要了A. 挤压 你说的对,期望怎么能算签呢? 一个重要的性质:一个数的平方可以在二进制下表示为 \(\sum_{i,j}\ s_i\ s_j\ 2^{i+j}\),所以就可以分别求每一位对答案的贡献了。 设 \(f_{i,1/0,1/0}\) 表示到第 \(i\) 个数我们枚举的两位…

PbootCms上传图片变模糊、上传图片尺寸受限的解决方案

在使用PbootCMS的过程中,如果上传的图片被压缩变得模糊,通常是因为上传的图片尺寸过大。PbootCMS 默认的上传图片限制宽度为 1920 像素,缩略图的限制大小为 10001000 像素。可以通过调整这些参数来解决这个问题。 解决方案打开 config.php 文件 调整 max_width 和 max_heigh…

ROS基础入门——实操教程

ROS新人可看ROS基础入门——实操教程前言 本教程实操为主,少说书。可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记。Ruby Rose,放在这里相当合理前言:本文初编辑于2024年10月24日 CSDN主页:https://blog.csdn.net/rvdgds…

PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展

在PbootCMS中增加可允许上传的文件类型(例如 webp、mov 等文件格式),需要在多个地方进行配置。以下是详细的步骤: 操作步骤 1. 修改 config.php 文件 首先需要修改 config.php 文件,增加允许上传的文件类型。打开 config.php 文件打开 config.php 文件,通常位于 /config …

出现“登录失败,表单提交校验失败”,请检查服务器环境

如果出现“登录失败,表单提交校验失败”,请检查服务器环境,然后刷新页面重试,或者删除 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除…

多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹

如果多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除浏览器缓存。 重新访问后台登录页面扫…