上海站


吐槽

必须吐槽六百八十多个队的比赛太难打了,金牌还是只有35个。幸好最后还是凭着封榜过两题拿到了25名(可能前面还有打星?)。8题还好没被榜首虐的太惨。

赛后我才知道那两盒核桃是上海大学寄过来的…我还以为是队友拿过来的没好意思吃。

复盘

开题顺序:G-B-M-D-C-H-I-L
没有特别难写的题,基本上过题顺序就是开题的顺序。

G 是签到题。

B 稍微有些思维含量。但只要发现取反后数字之和不变,就很容易做了。赛后想到如果把数字之和看做“雷-非雷”边的数量,这个性质就十分显然了。最重要的是A棋盘肯定不是白给的,所以答案肯定和 A 有关。

开 B 之前和邱学长讨论了下 D,hack 掉了几种做法。现在回想当时 D 应该能直接做出来的。应该是当时场上正确率很低,搞得我畏手畏脚的。

M 签到题2。

D 也不难,考虑 A,B 两个人分别到达哪个端点即可。除了 A 到达左端点,B 到达右端点之外,其他的情况都可以快速计算。在这种情况下容易发现 AB 所用时间相同的时候总时间最小。因此解一个方程即可。

C 观察发现式子之和 i or j 的最高位有关。枚举这个最高位 k 以后就是求 i or  j = k i \text{ or } j = k i or j=k 的 ( i , j ) (i, j) (i,j) 对数,显然是个数位 DP 问题。没看见取模贡献两次罚时。 O ( T l o g N ) O(TlogN) O(TlogN)

H 这时候场上还没有几个队过这个题,我们又一次下意识感觉这题挺难的。但实际上两步转化都比较显然,也不知道别的队是卡在哪里了。首先饭和干饭人互不相交,枚举第一个人对应哪碗饭,所有人就都知道吃哪碗了。这时候,每个人的要求就变成了要存在某一时刻桌子顺时针转 k i ( 0 < k i ≤ n ) k_i(0<k_i \le n) ki​(0<ki​≤n) 次 (成为正要求)或者逆时针转 n − k i n-k_i n−ki​ 次(负要求),只要一个满足就可以。显然是满足若干小 k i k_i ki​ 的正要求和其他的负要求,枚举这个“若干小”即可。复杂度 O ( n 2 log ⁡ n ) O(n^2\log n) O(n2logn)

I 就是暴力做,不大好写,调了挺久。

最后本着试一试的心态做了一下 L,先猜最优情况只有一个转折点(大概率是对的),然后枚举对角线上下几个点作为转折点,没想到过了。其实最后狂 T 的时候我就觉得可能能过,因为根据哥德巴赫猜想,这样的解肯定不会很大。

至于证明,我们先证明如果只有一个转折点 C,那么使得 AC + BC 最短的转折点一定满足题目要求。假设最优的 C,且 AC 上有整点 D,那么 AD + BD 一定更短。那么更进一步,“只存在一个转折点”的结论就显而易见了。

为啥在考场上就没想出来这么精妙的证明…

然后就是在场上没想出来的 E。场上考虑了构造的过程,可能太累了,竟然没想出正解。正解就是考虑当前最小元素只能放在前 k 个位置,它前面的随便放,后面的是一个子问题(离散化后),这个 dp 推推式子就能优化到线性。

总结

这事本赛季,也是高二退役以后第一场正式比赛。ACM 还是和 OI 赛制有很大的不同,对代码量和算法的要求相对少些。但很明显对思考能力要求更高,而且对思维敏捷性和手速的要求也更高。因为如果没有压倒性的实力,最后都是要靠着罚时取胜的。这场比赛,即使最后我们没做出 L,那么凭着罚时的优势也能苟住一块金牌。

这次没有遇到卡题的情况,但总是无法避免的,这时候队友的分工和机时的安排就显得至关重要了。

近期规划


这周的南京站不打,下一周的济南站组一个新队再次以打星身份参赛。当做娱乐赛来打,成绩没有那么看重,主要再积累一下经验。而且这可能就是我明年的队友了。

然后趁着没有考试比较闲,暂时休整一下,不打算熬夜打比赛了。想学学 JS,看看能不能开发个微信小程序。因为上周 MSC family 里人写了个带圣诞帽的小程序,搞得我也蠢蠢欲动。

距离回家还有44天…

2020ICPC上海站复盘及近期打算相关推荐

  1. 2020ICPC济南站复盘及近期打算

    济南站 写在前面 拿了第一块银牌.完全划水的一场比赛...虽说是打星,但还是很不舒服.过了五题,我贡献了差不多是最简单的三个题,其中最水的签到题还有一次罚时.实时证明半个月不写竞赛代码水平还是下降太厉 ...

  2. 近期打算及毕业前要补完的题

    之前总是开玩笑的说"退竞了退竞了",这次看来是真的退役了.想想这一年来的学习历程,有欢笑也有汗水.可能还是因为自己太菜,可能还是因为自己不够努力,最终还是滚去学文化课了. 辜负了教 ...

  3. 区块链行业感受及近期的一些规划

    一.区块链行业感受 自从2018年底进入区块链行业以来,深信区块链会给未来的互联网带来颠覆,但是就目前的发展轨迹来看,还是炒作大于实际,比特币让大家认识了区块链,以太坊让大家使用了区块链,EOS让大家 ...

  4. 【前端个人工作复盘总结】2021-10-18

    目前手头上的项目基本交付完成,趁着记忆还是热腾腾的,利用空余时间,复盘一下近期的工作,把重要的经验教训梳理沉淀下来,在此记之以提醒和勉励自己. 一.复盘的底层逻辑: 根据"GRAI复盘法&q ...

  5. python控制系统进程_python 监控windows进程

    python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动 用python监控您的window服务 原创作品,允许转载,转载时请务 ...

  6. 厦门大学宋宁宇:统计学专业到蚂蚁风控岗!

    WISERCLUB 宋宁宇 SONG NINGYU 宁宇自述 我叫宋宁宇,目前厦门大学王亚南经济研究院研三在读,本科厦大经院,本硕专业统计学,毕业去向目前是蚂蚁集团风控算法工程师. 不知不觉伴随WIS ...

  7. 微型计算机的硬盘电源,自己动手估算电脑的功率 | 微型计算机官方网站 MCPlive.cn...

    本来装一台电脑该配多大功率的电源是一个非常简单的问题,但不少人仍不得不求助于专家.是什么原因造就了这一难题?怎样轻松计算自己的电脑功耗?相信这是很多用户迫切想要知道的,本文就是要解决这个问题. 最近论 ...

  8. hbase coprocessor的分析

    转自 http://walkoven.com/?p=77 hbase coprocessor的分析 下载链接:hbase coprocessor的分析.pdf hbase Coprocessor是很多 ...

  9. python兼职 在家工作-在家兼职的人或者是自由职业的人都在做什么?

    DT君给大家分享几个之前采访过的自由职业者的故事吧,第一位是阿元,今年29岁,是上海的一名网文作者.下面是阿元的自述: 阿元 29岁 网文作者 上海 我上过几年班.我大学是数学专业,研究生读的是金融, ...

最新文章

  1. 遇到一个由于事务控制不当造成错误的Bug
  2. phpexecl保存mysql_【PHP】将数据库表保存为Excel(PHPExcel)
  3. WPF 绘制对齐像素的清晰显示的线条
  4. 函数指针 如:void (*oper)(ChainBinTreee *p)
  5. android:在ViewPager中使用Button
  6. matlab jar包,Matlab 將m文件打包成jar包 (二)使用jar包
  7. LeetCode刷题(43)--Combinations
  8. 动态创建MySQL Group Replication的节点(r11笔记第84天)
  9. 关于 Google 发布的 JS 代码规范
  10. 不忘初芯 NEC发布系列工程显示新品解决方案
  11. Mac端SVN工具CornerStone详解
  12. 代价函数的作用(2)--机器学习
  13. 计算机硬盘更换图解,GHOST磁盘克隆详细图文教程,看后你也可以自己快速更换电脑硬盘...
  14. 华为交换机调试软件_无忌之谈华为005丨 “华为系”黄埔军校诞生记
  15. linux执行jar的两种方式
  16. iOS自动化打包发布之fastlane 实现 发布AppStore 蒲公英
  17. 批量修改照片名称的快速方法
  18. 常用的mysql存储引擎及其特点
  19. SQL Server—T-SQL编程
  20. 在两个数字之间求出其间所有质数

热门文章

  1. Windows 远程桌面连接
  2. 【JS基础】求整数1~100的累加值,但要求跳过所有个位为3的数
  3. 查看cpu是否支持avx2指令集
  4. nvidia cuda windows下gpu内存管理
  5. 虚拟机linux系统的安装
  6. xp linux 桌面快捷方式,清理WinXP系统桌面上的快捷方式图标(转)
  7. 【渝粤题库】国家开放大学2021春1067知识产权法题目
  8. form表单输入正则校验
  9. 【码上实战】【立体匹配系列】经典PatchMatch: (3)随机初始化
  10. 前端必备的25个CLI命令行