首页 > 其他分享 >CSP-S 2023游记

CSP-S 2023游记

时间:2023-10-21 21:11:42浏览次数:31  
标签:t4 30 样例 t1 树形 2023 序列 游记 CSP

2023.10.21

10/21 12:00

还在过模板()
专程请假润回家半天以为差不多能看完一遍知识点,结果还是没看完。平时总觉得没学啥东西,到关键的时候才感觉到这门竞赛的东西之多。连午觉都没时间睡,路上草草过了下莫队就到考场了。

2:20

坐到考场。监考老师在提醒考试期间不要打游戏,难绷

2:30

开题。
没有选择像去年那样先把四道题过一遍,因为这次来本来就是冲着稳稳做掉第一题拿省一就行的目标来的。于是直接磕t1。t1给定n个错误的五位数的编码,这些编码均由正确编码更改一位或同时更改相邻的两位且更改之差相同而来。求正确编码的可能个数。开始想用差分来做,然后马上否决了。然后就注意到五位数的编码最多只有1e6种情况,且n的范围<=8,完全可以枚举每一种编码然后验证。然后就开始写,一年没敲代码手太生了,改了几次错在3:05时实现,用样例验了一下就扔那不管了。

3:05

之后就有点犹豫,不知道是再看看t1还是接着往后写。怕t1再出锅,毕竟去年还是历历在目。犹豫了一下还是决定直接开后面的题。细致的扫了一遍后三道题考虑了一下做法,t2求所有可以被消去的字符串的连续子序列,t3直接给我上阅读理解好家伙,又是结构体又是字节的,t4树形结构上的问题,看起来挺有可做性。然后就开始看t4。

3:30

t4给定一个\(n\)个空地的森林,空地之间的关系构成一颗树,在空地上生长的树第\(x\)日增长量为\(b_{i}+x*c_{i}\),每天种一棵树求最小天数。考虑特殊性质A,\(c_{i}\)恒为0,那么树的增长量恒定,计算出达到标准\(a_{i}\)所需的天数树形dp即可。尝试敲了一会发现树形dp忘完了(),只能知难而退想t2。此时4:00。
这么一折腾浪费不少时间,赶紧想t2。这种求满足题设规则的所有子序列我向来头疼,在草纸上演草了半天abba,abbcddca这种情况怎么解决,还是一筹莫展。然后就开始研究给的样例,想出来一种最朴素的暴力:扫描一遍序列,研究以元素\(a_{i}\)为中心元素的序列个数,对于aabb这种情况只考虑元素之前的所有情况,abba这种情况就左右搜索。然后发现abbacddc这种前后拼起来形成一种情况的没有办法囊括在内,就声明了mem数组,用\(mem[i]\)来表示以i为结尾的所有情况。搜索时无法与前面的元素拼合时就加上\(mem[i]\),脑造了几个小样例都过了,但是给的第二个样例过不去。折腾一会发现abba的情况左右搜索不仅麻烦而且正确性有待商榷,就改成搜索到第\(i\)个元素的时候考虑以\(i\)为结尾的所有abba情况。这时候才逐渐发现这题应该往动态规划想,开始考虑状态转移方程,此时已经4:30左右。
想出来25分做法:以\(p[i][j]\)表示子序列[i,j]是否是可消除的序列,p[i][j]可以由p[i+1][j-1]和p[i][k],p[k+1][j]转化而来,最后统计一遍p[i][j]的个数就行。时间复杂度\(O(n^3)\)。然后就开始着手实现。到4:50左右过了几个自造的小样例。感觉还有优化空间。去了趟厕所洗了把脸,感觉清醒不少,开始想优化。发现循环的时候\(j\)从\(i-1\)到1,\(k\)从\(i\)到\(j\),感觉有些繁琐,考虑把\(k\)循环优化掉。若\(p[k2][j]\)和\(p[i][k2-1]\)可组成可消除的序列,对于\(k1\)<=\(k2\),也必然能和另一部分组成可消除的序列。\(k\)有序就能把\(k\)这层循环消掉,复杂度变成\(O(n^2)\)。这样就能拿到50分的部分分,试了一下题给样例发现能过。此时5:10。

5:10

还有1小时10分钟,转头考虑t4,t3我是真不想做阅读理解。又硬着头皮想半天怎么树形dp,还是不行。考虑特殊性质B的部分分,树只形成一条链。那就只有一种选择。但是树只由种的那天开始长,这就给计算提升了难度。把第x天第i颗树的高度表达出来突然发现题目给限定条件增长量取\(max(1,b_{i}+x*c_{i})\),这个1就让函数变得抽象,然后就想开摆。此时5:30。

5:30

再读一遍题干突然发现题目保证在\(1e9\)天内达到标准,感觉可以二分答案。开始考虑特殊性质A的二分答案。check函数用计算出每棵树所需天数,然后按照深度和所需天数共同决定选取,能靠后选尽量靠后选的方法写。到实现的时候已经6:10分了,手打了几个样例试了一下都没问题。然后构造了一个特殊的样例发现有问题,小问题,我不是无路可走,我还有死路一条。紧张地检查了一遍发现没有把空地在树中的深度加入权重,此时已经6:20。改完还好过了特殊样例。

6:23

匆忙删去不必要的输出,加上return 0和freopen,最后再看一遍代码就提交了。想要在注释里写下什么话,还是放弃了。坐在考场等待离场的那一刻,不禁回想起这5年来的OI生涯。如果去年t1没有挂分,如果t3树形dp写对了,如果跟杨导讨论割边问题的时候能去实现一下,是不是会有不一样的结局呢?如果我凭此进入了省队,拿了银牌,抑或铜牌,现在是否会不一样呢?又或者我从来没学过OI,从没停过课训练,专心文化课,现在是否也会不一样呢?回首来路,有太多值得感慨。但我现在终究站在高考的赛道上,回首向来萧瑟处,归去,也无风雨也无晴。

t4的自造小样例强度不是很大,不能确定这25分能否平稳拿到。
预估得分:100+50+0+[0,25]=[150,175]。

标签:t4,30,样例,t1,树形,2023,序列,游记,CSP
From: https://www.cnblogs.com/smy-2006/p/17779564.html

相关文章

  • CSP-S2023游记
    不知不觉也高二了呢,最后一年OI了。Day-??过了初赛。没什么难度。Day-4模拟赛挂分。RP++。Day-3模拟赛挂分。RP++。Day-2没挂分……?换数据了,又挂了。RP++。Day-1没挂分。但是今天是我生日,所以,陌生人,你可以住我生日快乐吗?RP++。Day0没有模拟赛,挂不了分了。......
  • CSP2023
    CSP-J2023T4感觉提高组没这个难。暴力的做法是\(f_{u,i}\)表示到\(u\)的时间为\(i\)是否可行。不过发现如果\(f_{u,i}=1\),则\(f_{u,i+k}=1\),所以只需要记录\(f_{u,i}\)表示模\(k\)余\(i\)且可行的最小的\(j\)即可。CSP-S2023T1直接把所有操作一步到达的状......
  • CSP-S2023 总结
    回顾lock约25分钟通过。gamehttps://www.luogu.com.cn/problem/CF1223F如果存在两个前缀满足它们所对应的栈的状态一致,那么这两个前缀的差就是合法序列,因为中间部分被削除了。我将之弱化到了“栈的大小一致”,结果假假假。我是什么Shaber!1.5h时完成50分。struct近......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记6(必做)
    学习笔记6Unix/Linux系统多任务处理概述多任务处理系统Unix/Linux系统的进程管理实践过程Unix/Linux系统多任务处理概述1.进程管理:进程是程序的执行实例。Unix和Linux支持多个进程同时运行,每个进程都有自己的独立地址空间和资源。这使得多个应用程序可以同时运行,互不干......
  • 2023-2024-1 20231314许城铭 《计算机基础与程序设计》第4周学习总结
    这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第4周作业(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13000))这个作业的目......
  • CSP 游记
    CSP前一天才开始写,之前的忘了也不想写。Day-1打考前信心赛,大众分300+的那种。讲个乐子,在考试的最后两分钟,有个消愁先删了freopen的注释,然后重启电脑从Linux回到Windows系统,没有保存,就保龄了。下午其他学校的同学来试机了。......
  • CSP-J2023 题解
    T1code#include<bits/stdc++.h>usingnamespacestd;intn,ans;signedmain(){ ios::sync_with_stdio(0);cin.tie(0); cin>>n; for(inti=n;i;i-=(i+2)/3)++ans; cout<<ans<<""; for(inti=n,j=1;i;i-=(i+2......
  • 20231405罗马数字转阿拉伯数字(选做)
    罗马数字转阿拉伯数字(选做)任务详情参考https://blog.csdn.net/a197p/article/details/75475456,回答1罗马数字是位置计数吗?它的缺点是什么?2把你的8位学号转化成罗马数字3参考上面的博客,用Pyhton写一个罗马数字转化为阿拉伯数字的程序,并验证上面你的学号对不对作业一 位......
  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第六周学习笔记
    202113252023-2024-1《信息安全系统设计与实现(上)》第六周学习笔记一、任务要求1.自学教材第3章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X......
  • 20231405寻找你的黑客偶像(选做)
    寻找你的黑客偶像(选做)一.黑客偶像袁仁广别名:大兔子(datuzi),人称袁哥。提起袁任广,知道的人或许并不多。但如果提起袁哥或者大兔子,在国内安全业界称得上尽人皆知。在国内,他的windows系统方面的造诣可谓首屈一指,早在1999年就曾提出过windows的共享漏洞。而现在袁仁广领衔的360漏......