Codeforces Round #189 (Div. 1 + Div. 2)
2024-08-31 18:46:30
A. Magic Numbers
- 不能出现连续的3个4,以及1、4以外的数字。
B. Ping-Pong (Easy Version)
- 暴力。
C. Malek Dance Club
- 考虑\(x\)二进制每一位1,假设位置为\(p\),则前\(p-1\)位都需要一样,否则之前就计算了贡献,那么后面的位可以任取。
D. Psychos in a Line
- 链表模拟。
E. Kalila and Dimna in the Logging Industry
- 因为\(b_n=0\),所以用最小代价砍倒第\(n\)棵树即可。
- \(dp(i)\)表示砍掉第\(i\)棵树的最小代价。
- \[dp(i)=min\{dp(k)+b_k\cdot a_i\}\]
- 斜率优化。
F. Have You Ever Heard About the Word?
- 删除次数最多\(\sqrt n\)次。
- 假设当前的删除长度为\(len\),每隔\(len\)取一个关键点\(p\),如果存在可删除串,则\(p\)和\(p+len\)的最长前缀和最长后缀之和大于\(len\),通过二分+hash可以\(logn\)计算。
G. Ping-Pong
The length of the new interval is guaranteed to be strictly greater than all the previous intervals.
- 对于\(a<b\),\(|I_a|<|I_b|\),区间\(a\)和区间\(b\)要么相互可达,要么区间\(a\)完全被区间\(b\)完全包含。
- 利用线段树+并查集维护相互可达的区间。
- 判断\(a\)是否可达\(b\):
- 相互可达,即属于同一集合。
- 区间\(a\)的端点是否被\(b\)集合包含。
- 满足上面其中一点说明\(a\)可达\(b\),否则不可达。
最新文章
- Nodejs进阶:如何将图片转成datauri嵌入到网页中去
- BZOJ3557: [Ctsc2014]随机数
- FBX .NET
- Intel DPDK的一些参资料
- JavaScript对SVG进行操作的相关技术
- linux hosts一个诡异问题
- DataContext 数据在F5刷新频繁,会出现数据读取错误
- 判断Python输入是否为数字
- WEB 3D SVG CAD 向量 几个实施
- openstack 网络架构 nova-network + neutron
- 基于C++的类编程总结
- ibatis的动态sql
- ASP.NET SignalR介绍
- Android-Could not download kotlin-reflect.jar
- python3-元类
- 【Android】修改Android 模拟器IMSI
- GB/T19001—2008质量管理体系要求、标准、贯标(贯彻标准)
- ComboBox中如何嵌套TreeView控件
- 解析如何在C语言中调用shell命令的实现方法【转】
- xml的解构与组装
热门文章
- ajax下载小于500M大文件【原】
- Java.控制层.响应工具类.
- Leetcode697.Degree of an Array数组的度
- 从php到浏览器的缓存机制
- 自学FPGA笔记之 “sublime的使用”
- laravel 文件
- Directx11教程38 纹理映射(8)
- js赋值符号“=”的小例子
- Python学习之路14☞多线程与多进程
- IDEA入门(1)--lombok和Junit generator2插件的运用