2019CSP-S 数树树 树数树

11.15

披着外套,呆呆地望着窗外,一排排地景观树逆着我们的方向奔驰而过,路上车流不断,或多或少地都陪了我们一程,然后在我的余光中缓缓消失……恍惚间,路上的车牌已经没了诸暨的字样,取而代之的是杭州二字。

发到房卡大约3点,简单地放好行李,我们去外面吃了顿火锅,算是考前的狂欢。

回到酒店大约是六点,早早地洗漱完坐在床上,抱着笔记本看了一集动漫,接着就开始看自己的模板,从关键路径看到最小环,从KMP看到线段树,从欧拉看到了容斥……结果一个也没有考!!!(果然是考前看什么不考什么QAQ)

11.16 Ren2Zhen0Si1Kao9?

六点半起得床,精神头还算不错,酒店早餐意外地还不错,就是电梯楼梯的设计真得让人很想吐槽……

坐车20分钟到了文渊。

人,意料之中的多,走进馆场还非常巧地遇到了初中同学,挺开心的!

找到位置后,就开始四处乱看……惊奇地发现一个停车位里面竟然要坐六位选手(这和我想像得不太一样啊!)然后非常高兴地发现斜对面做了QT大佬,真好!大佬的欧气领域往往在直径为1的范围内增幅较高!往旁边看,可能是HL的人群基数较大,转了一圈感觉四面八方都是认识的……这种感觉挺好的。

好无聊……发呆发了半个小时的我不知道该干嘛……一转头,发现坐在我右边的大佬趴下在睡觉!太聪明了!不愧是大佬!于是我有样学样也趴了下来……

……(略过一些事情,反正现在考试开始了)

花了大概30分钟的时间看完了题目,以及简单粗略地想了想第一题和第二题……

又大概花了30分钟的时间写完并搞出了第一题(反正样例和自己的手膜数据数据都过了)
(后来才知道 2 2 2 64 ^{64} 64爆了 l o n g long long l o n g long long,YY大佬把它当故事讲给我听,没想到成了事故……)

大概又花了30分钟写完了第二题,过了两个样例,但是在测试第三个大样例的时候,却显示错误……
然后我花了近一个小时去调它……
这时候已经过去两个半小时辽……我还是没有调出来,调代码简直要把我逼疯!
我放弃了……

我开始写第三题,目的很明确,直奔暴力……但是本人码代码比较慢……前面第二题又耽搁了一些时间,最后第三题的代码暴力还是有缺陷的(特殊情况没有讨论完),没有来得及码完……

写第三题卡着的期间还回去看了一下第二题,找到了原因……是并列括号的情况没有判完全……但是没时间改了……我也短时间想不出来怎么改,检查了一遍第一题第二题的文件名,我就开始死磕第三题,写到了最后一秒,但是并没有写出来……

回到酒店,有些颓废……xwm,cj还有我非常努力地忘掉今天,emmmm还点了下午茶外卖和夜宵……

11.17 @zhuajin1SHIJIAN7

新的一天新的开始!

前面都是和昨天一样的……

花了大概一个半小时想了一下这三题怎么写……

幸运之神选择了看上去可以打暴力的T2……写了40分钟叭……写(+调)了一个暴力,过了几个小样例……大样例还比正确答案大了一些……不过吸取了昨天的教训……我先放下了它,然后写了第三题的链暴力,然后开始嗑完全二叉树的暴力,转眼又过了20分钟,什么都没有想出来,我转头回去写第一题。

写了一个组合数加容斥,同样只过了小样例……大样例答案总是与正确答案很接近……我就一直在调……
又过了20分钟。

我检查了一下第二题和第三题,然后准备与第一题死磕……我删掉了原来的组合数和容斥……重新开始写……我知道很冒险……但是我想试一试,然后重新写了一版,在距离考试还有15分钟的时候写完了。但是这回连小样例也只能过一个了,QAQ。

好叭……我放弃了,存好了最新一版……我回头又检查了一遍第二题,那个大样例就不管了……第三题……嗯???突然发现我的链在一个多重数据里,最后一组差了 2 2 2??!!!嗯????!!!!很好!我开始调……调到了最后一秒……

总结:D2爆零了要!

心态

全程其实没有什么心态变化,就和平时模拟赛一样(但是题目难度比模拟赛不止难了一点啊啊啊)
虽然两天都做到了最后一分钟,但是一点都没有慌乱的感觉……整个人都非常淡定??!!

反思

对于题目的分析不够透彻……拿到一道题不能很好地对应知识点……
调代码的能力太差……调了一个小时都没有找出错,真的是……
写代码的时候没有想的特别完善……导致后期要靠调……应该在做题前再整理一遍完整的思路的

计划

要把还没有学的一些基础知识点补上,再在以前囫囵吞枣的地方练题。

——菜鸡省三获奖感言

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
廊桥分配问题是指给定一座长度为n的廊桥以及m个人,每个人需要跨过廊桥到对面。廊桥每次只能让两个人同时通过,且只有两个人的速度加和不超过廊桥长度时才能通过。每个人过桥所需的时间不同,要求找到一种过桥方案使得所有人的总过桥时间最短。 该问题可以通过使用线段树的解法。首先,将n个位置看作是一棵树,每个节点对应一个位置。然后,我们将所有人按照过桥时间从小到大排序,并按照排序结果为每个节点分配一个排序编号。接下来,从左到右遍历排序后的人员列表,对于每个人,我们找到其对应的节点,并为该节点分配一个值,表示该位置可以被占用。 这样,在分配完所有人的节点后,我们得到了一个线段树,每个非叶子节点表示一个廊桥位置,叶子节点表示一个人,其父节点的值表示桥上人员的速度加和。通过遍历这颗树,可以计算出所有人过桥的最短总时间。 具体操作如下: 1. 根据所有人的过桥时间从小到大排序。 2. 为每个节点分配排序编号。 3. 初始化线段树的所有节点为空(未占用)。 4. 从左到右遍历排序后的人员列表,对于每个人: a. 找到对应的节点。 b. 判断该节点是否为空,如果为空,表示该位置可以被占用,否则找到该节点的兄弟节点(该节点的父节点的其他子节点)。 c. 将该节点或其兄弟节点标记为占用,并更新父节点的值。 5. 遍历线段树,计算所有人过桥的总时间。 使用线段树解决廊桥分配问题的时间复杂度为O(nlogn),因为排序的时间复杂度为O(nlogn),遍历人员列表的时间复杂度为O(n),遍历线段树的时间复杂度为O(nlogn)。总的空间复杂度为O(n)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值