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

20251112 正睿

B

image

对于一个子串,它一定会是两条出边,当且仅当其所有字符相同时达到的节点相同(不妨设这样的字符串为”特殊串“)。

如果不考虑特殊串,答案就是 \(2^n - 1\)

而只要到达了特殊串,后面就只有 \(|s|\) 种路径了,所以只用在第一次到达特殊串时减去对应的方案数即可。

设特殊串对应 \(s_{l\sim r}\),那么需满足 \(s_l \ne s_{l - 1} 或 s_r \ne s_{r + 1}\),就只有 \(O(n)\) 种。所以枚举第一个到达的特殊串,用组合数算算到达它的方案数,再减去它往后的方案数。

时间复杂度:\(O(n)\)

还是有点意思吧,最开始脑瘫的把特殊串的定义搞错了,以为是 \(s_l = s_r\) 就做不了。

抓住到达特殊串后方案数可以轻松算出这个特点,只需要关注第一次到达的特殊串即可。

D

image

\(n \le 26\)

有一个十分暴力的 \(O(3^n)\) 暴搜做法(枚举每个蛋糕分给谁。)

以为是个剪枝题,赛时首先钦定了 \(2\) 个蛋糕,然后暴搜时加了一堆最优性剪枝,大样例跑的飞起,结果只过了 \(n \le 20\)


\(3^n\) 很大,但是 \(3^{\frac{n}{2}}\) 还好,考虑折半搜索。

假设左边三个人得到的蛋糕 \(a_l, b_l, c_l\),右边是 \(a_r, b_r, c_r\)。不妨设 \(a \le b \le c\),即 \(a_l + a_r \le b_l + b_r \le c_l + c_r\),权值为 \((c_l + c_r) - (a_l + a_r)\)。把关于 \(l, r\) 的分开,移项可得:

\[a_l - b_l \le b_r - a_r \\b_l - c_l \le c_r - b_r \\ 权值为 (c_r - a_r) + (c_l - a_l) \]

是个标志的二维数点问题,就做完了。

时间复杂度 \(O(m \log m)(m = 3^{\frac{n}{2}})\)

没怎么想折半,以为要优化成 \(2^n\) 之类的复杂度或者就是要剪枝(大样例太水了)。

http://www.jsqmd.com/news/38834/

相关文章:

  • 如何根据色带计算电阻阻值
  • 25.11.12 差分约束算法
  • 11/12
  • Linux C/C++ 学习日记(27):KCP协议(三):源码分析与使用示例 - 实践
  • 解决Cursor编辑器无法通过include path识别C++头文件的问题
  • 麒麟桌面系统2503安装openjdk21
  • 重组蛋白基础与技术概述
  • Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01
  • E. Journey
  • Dynamics 365 Field Service跨站脚本欺骗漏洞分析
  • Linux优秀的系统--信号(3--信号的保存、阻塞)
  • 深入解析:SQL提数与数据分析指南
  • 日报11.12
  • 大家来写 ICPC 西安(没写完)
  • [译] 省略 Async 与 Await
  • 你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!
  • iverilog、gtkwave工具链接
  • 2025 11 12
  • 使用WiX创建Windows应用安装包 - -YADA
  • 学生信息管理系统团队项目随笔
  • Total Recall: 如何在Windows下开发输入法
  • 大数据量场景下的编辑 / 选择 / 详情优化
  • 简化Python数据结构初始化:从繁琐到优雅的进阶指南 - 详解
  • RabbitMQ相关
  • 第八天 测试用例编写
  • 软工团队作业2--需求规格说明书
  • 没用的博客园页面的要素介绍
  • 使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践
  • #题解#洛谷P1314#二分#前缀和#
  • Python 实现对遥感影像根据DN值上色