当前位置: 首页 > news >正文

2025ccpc南昌邀请赛感想+补题

比赛前去了81纪念馆和滕王阁,必须说江西的风景还是不错的,不过可惜的是作为一个江西人没有吃到足够辣的江西菜

赛前一晚做梦梦到比赛打炸了,然后还有另一个比赛也忘记打了,回去被同学鞭尸给我吓醒了,谁懂醒来还在酒店床上的救赎感

还好梦是反的,最后7题拿下第一个金牌,可惜最后封榜后没有过题

补题链接https://qoj.ac/contest/2521

L
签到题,没什么好说的

G
同样是签到题

A
队友打的,不记得了

K
所有菜品根据模4可分为4类,0,1,2,3
策略是先把0上完,然后上3131...直到3或者1用完
如果剩了3,可以循环上332,如果剩1就循环上211,如果2不够就没有答案返回no
最后剩的2就222的上,时间复杂度O(n)

H
肯定只有n次加珠子,先把这n次加上,得到数组1,2,...,n
把第二种操作插入这n个操作中,本质就是一个单点加1再对这个点之后的某个后缀区间加1
把目标数组ai-i,得到剩下的就是需要用操作2补全的量,如果有负值直接输出no
从左往右贪心想最少需要多少次操作即可,时间复杂度O(n)

C
如果对于[L,R]的虫洞,能快速判断它们能否被划分成不超过k组,就能用双指针解题
赛时突然想到的假设,后来可以证明,把一个虫洞看成一个区间加1操作,如果最后没有点大于k,就说明这些虫洞可以被划分成不超过k组
最后线段树+双指针一发过,时间复杂度O(nlogn)

B
感觉n比较大的时候很难出现一个人赢所有人或者输所有人的情况
于是手算了一下随机选两个人u和v,u对v是k间接战胜的概率
\(P(k=0)=1/2,P(k=1) = (1-(3/4)^{n-2})/2\)
可以看出来当n很大时,k = 0和k = 1的概率加起来已经很接近1了,那么就不需要考虑其他k>1的情况
假定分界点是n = 100,当n<=100时使用floyd算法预处理多源最短路,时间复杂度O(n^3)
当n>100时遍历所有点对(u,v),如果u赢了v,u对v是0间接胜利,v对u则是1间接胜利,时间复杂度O(n^2)
写法很简单,从思考到ac花的时间感觉不超过20min,最后还是1发ac,感觉这次状态真的不错

赛时过的就这些,其余待补

http://www.wxhsa.cn/company.asp?id=5943

相关文章:

  • img标签如何去除边框?
  • 25.9.16 java se大致了解后开始学习MySQL
  • C++ + OpenCV + Tesseract 实现英文数字验证码识别
  • Hadoop伪分布式hbase学习
  • Redis源码学习 -- 基本数据结构 -- Quicklist - -蓝蜗牛
  • 动态修改线程池参数
  • 力扣70题 爬楼梯
  • PHP(Laravel)+ ImageMagick + Tesseract 实现验证码识别
  • Windows下使用python + opencv读取含中文路径的图片 和 把图片数据保存到含中文路径下
  • 黑白世界
  • 在 PHP 中,$_GET
  • 在 ThinkPHP DB
  • 什么是网络+HTTP详解
  • 快速管理win系统上的用户
  • redis实现全局唯一id
  • 表格识别技术:“唤醒”沉睡在纸质文档中的海量结构化数据
  • 【大三下】资料,仅内部学习使用
  • fastboot工具的常见命令
  • 《软件需求最佳实践》阅读笔记一
  • 挖掘PDF生成器中的SSRF漏洞:从发现到利用
  • 做题记录 2
  • 计数原理与排列组合
  • 9.16动态用例设计方法 笔记
  • 深入解析:ESP32三种主流的开发环境
  • js
  • 9.16电商状态迁移图
  • c# ConcurrentDictionary
  • 核桃OJ【S组 第二轮】信息学竞赛10w选手模拟考
  • 第一次个人编程作业
  • 【初赛】软件系统 - Slayer