2023-2024 ICPC German Collegiate Programming Contest (GCPC 2023)
1|0B. Balloon Darts
首先上一些计算几何的板子。
如果条直线覆盖个点成立的,则有两种情况。如果则一定成立,反之在前个点中必然存在两个点被一条直线经过,我们可以枚举出这条直线,然后暴力的删掉点,然后递归做。
2|0C. Cosmic Commute
正反两边最短路,然后枚举一下走到哪一个穿越点是上,找到最大的概率。
3|0D. DnD Dice
概率 dp,表示前个骰子掷出的概率,求解之后排个序就好了。
4|0E. Eszett
5|0F. Freestyle Masonry
具体的贪心策略可以参考官解,就是从最左侧的一列开始竖着放,直到放不下为止,如果空一行就横着放一个,然后下一列继续。这个贪心很好想,但是似乎实现起来还是挺困难的。
然后看了一下题解,思路就是如果当前需要横着放一格,下一行就必须要高度就减 1,如果这一行刚好可以放下,有两种情况,一种是本来就是刚好放下。另一种是上一行横着放,这种情况就要高度加 1 了。这里可以加一和本来高度取一个 max 来解决。
6|0G. German Conference for Public Counting
以四位数举例,首先的部分每种数字都需要三个也就是 30 个,然后看四位数的部分,如果有这数字的,就需要额外增加数字,我们可以用计算出需要额外增加几个数字。
7|0I. Investigating Frog Behaviour on Lily Pad Patterns
把所有可能位置都插入的set
,然后把已经存在的删掉,然后每次去里面二分一个新位置跳过去。
8|0L. Loop Invariant
给你一个括号匹配的序列,这个序列本身是在环上的,在环上可以通过任意一个匹配的位置断开,如果断开的后的结果是唯一的输出
no
,否则输出任意一种其他的断开方式。
对于当前的序列,找到第一个匹配的前缀,然后检查原串是不是可以通过这个前缀反复复制得到,如果是,这断开方法就是唯一的。否则交换前缀后缀就是一种新的断开方式。
9|0M. Mischievous Math
因为数字范围只有 100,所以可以直接三次方枚举所有的组合,然后计算出每个数字可以得到的数字集合。
__EOF__

本文作者:PHarr
本文链接:https://www.cnblogs.com/PHarr/p/18169799.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
本文链接:https://www.cnblogs.com/PHarr/p/18169799.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!