惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
Help Net Security
Help Net Security
AWS News Blog
AWS News Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
C
Cisco Blogs
P
Privacy International News Feed
博客园 - 聂微东
T
Tenable Blog
Recent Announcements
Recent Announcements
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Latest news
Latest news
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Privacy & Cybersecurity Law Blog
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
S
Schneier on Security
云风的 BLOG
云风的 BLOG
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
W
WeLiveSecurity
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
AI
AI
G
GRAHAM CLULEY
小众软件
小众软件
博客园 - 司徒正美
Scott Helme
Scott Helme
罗磊的独立博客
Project Zero
Project Zero
A
About on SuperTechFans
MyScale Blog
MyScale Blog
L
LangChain Blog
TaoSecurity Blog
TaoSecurity Blog
P
Palo Alto Networks Blog
H
Heimdal Security Blog
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志

某岛

AtCoder Beginner Contest 409 Luogu P5325. 【模板】Min_25 筛 UOJ #188. 【UR #13】Sanrd AtCoder Beginner Contest 371 AtCoder Beginner Contest 369 RPGMaker 2k3 百科 OneShot 的考古 2024“开创拓芯”游戏创享节的相关记录 CJ 回来后的戒断反应 Luogu P10221. [省选联考 2024] 重塑时光 Luogu P5308 [COCI2018-2019#4] Akvizna wqs 二分 歌唱王国 Lean 相关 BZOJ 3153. Sone1 The 2023 ICPC World Finals Luxor 新巴别塔 Sora 的想象与思考 Facebook Hacker Cup 2023 Round 1 AtCoder Beginner Contest 322 LLaMA 2 相关 HuggingFace AI Game Jam ACL 2023 Trans 相关… Luogu P2053. [SCOI2007] 修车 Luogu P1973. [NOI2011] NOI 嘉年华 Luogu P1933. [NOI2010] 旅行路线 Luogu P1954. [NOI2010] 航空管制 Luogu P2048. [NOI2010] 超级钢琴 Luogu P2046. [NOI2010] 海拔 Luogu P3227. [HNOI2013] 切糕 Luogu P8500. [NOI2022] 冒泡排序 Luogu P3629. [APIO2010] 巡逻 USACO 2018 February Contest, Gold Problem 2. Directory Traversal Luogu P3647. [APIO2014] 连珠线 IZhO 2017. Problem F. Hard route SPOJ TWOPATHS. Two Paths 换根 dp 洪恩电脑 —— 开天辟地 Facebook Hacker Cup 2022 Round 2 Codeforces Round #875 Luogu P5828 边双连通图计数 EC Final 拉格朗日反演定理 Luogu P5827. 点双连通图计数 无标号连通图 AtCoder Beginner Contest 284 Luogu P4708. 画画 Luogu P6295. 有标号 DAG 计数 BZOJ #2863. 愤怒的元首 HDU 3303. Harmony Forever 聊聊《明日方舟 Side Story 孤星》与《崩坏:星穹铁道》 SGU 208. Toral Tickets 后日谈,SHLUG 月度分享(上) 钢琴练习 EasyRPG x ChatGPT ControlNet 相关 The 1st Universal Cup, Stage 4, Ukraine EasyRPG —— Sliding Puzzle The 1st Universal Cup, Stage 3, Poland DP 优化练习 NOI 2009 TypeDB Forces 2023 Nas 买来做什么… Global Game Jam 2023 参赛纪录 The 1st Universal Cup, Stage 2, Hongkong The 1st Universal Cup, Stage 0, Nanjing Codeforces Round #850 舟游同人游戏 RM2k3 机能增强 —— EasyRPG Player 魔改版 《海之歌》设定与剧本 dfs 序求 lca Codeforces Round #844 P3768 简单的数学题 AtCoder Beginner Contest 281 ChatGPT 相关 AtCoder Grand Contest 059 AtCoder Beginner Contest 280 Codeforces Global Round 24 事实核查,以乌鲁木齐火灾为例 SPOJ MUSKET. Musketeers Pinely Round 1 Note about FTX Permutation CodeTON Round 3 Codeforces Round #831 Educational Codeforces Round 138 NovelAI 法术指南 卡农 Educational Codeforces Round 135 Codeforces Round #819 瓦喵之夏 NOI 2022 Luogu P3765 总统选举 Luogu P3369 【模板】普通平衡树 网络国家 旋转卡壳 OFAC Sanctions && Tornado Cash BZOJ 1185. [HNOI2007]最小矩形覆盖 Codeforces Round #814
ICPC World Final 2021
2022-11-13 · via 某岛

传送门

Table of Contents

感觉今年题目貌似比 去年 简单,是我的错觉吗?(反正几何题大家都不会去开的)。
还是按照我认为的难度排序。。。

Problem H. Prehistoric Programs

贪心乱搞。

Problem A. Crystal Crosswind

我们需要找出必须是 ‘#’ 的点和必须是 ‘.’ 的点,剩下的可以随便填。
考察每组 wind 能够给出的信息:
(1): 首先对于其中的每组 (x, y) boundary,(x, y) 必然填 ‘#’,且 (x – wx, y – wy) 必然填 ‘.’。
(2): 除此之外,对于每个不在 boundary 的点 (x, y),也是能给出一定信息的(风大概还有个 z 轴从上向下吹的。。),要么 (x, y) 是 ‘.’ 要么 (x, y) 是 ‘#’ 且 (w – wx, y – wy) 也为 ‘#’。

其实就是 floodfill … 具体实现的时候,对于第一问,先假设所有点都是 ‘.’,然后根据 boundary 信息给出初始的 ‘#’,然后再对于每一个新的 ‘#’,用第二个条件去做 floodfill 填出其它的 ‘#’。
第二问的做法也类似,记得还要考虑边界外的 ‘.’。

Problem L. Where Am I?

因为我们要求和,所以只能暴力 bfs(),就是和前几天 CF 的那个题差不多,开两个队列来回倒腾,把所有源点弄成一个集合塞进队列里,然后每次移动一步,边移动边分拆集合,直到集合中只有 1 个元素,复杂度 O(n4)。
考虑到标记的规模只有 O(n),所以另一种做法是,我们预处理出每个点,到每个标记的距离,对这些距离按照字典序排序,就可以得到最早被分割的时间(结构类似后缀树组),复杂度 O(n3logn)。

Problem I. Spider Walk

I 题开始题目读错了。。以为是可以花费 1 的代价修 bridge,然后求单源最短路。。。但是实际上对于每一个弦(bridge)。。。只要遇到了,就是必须经过的。。。
那最后就是在这个东西上面 dp 。。。dp 的过程相当于,从远到近,每次加一些弦。。然后用这些弦去做松弛。。。每添加一条边,实际上是交换这两个点的状态,然后再分别向左和向右一路扫下去。。

2 3 3 2 1 0 1
2 3 2 1 0 1 1
1 2 2 1 0 1 2
1 2 1 1 0 1 2
2 1 1 1 0 1 2

以样例 1 来说的话。。dp 状态是这样。。考察第一条边加入之后,虽然交换了 dp[4], dp[5] 的值,但是 dp[6] 依然等于 1,因为我们再后续添加边时,可以决定添加边的顺序。。。
所以每个状态在任意时刻,除了交换的时候,dp 值不会变劣,确实符合 ”松弛“ 的一般定义。。。
最后只要动态离散化压缩 dp 状态即可。。。

Problem B. Dungeon Crawler

正解要倍增祖先 + dp,感觉非常难写。。。但是这个题可以 O(nq) 搞过去囧(想不到吧。。。
不过去年的 B 题都能 O(n2) 爆过去囧,这个当然也不算什么。。。。

Problem C. Fair Division

初始有 m 价值的金子,n 个海盗围成一圈,每次当前金子的 p/q 留给自己,剩余的给下一个人,这个过程将无限进行下去。
问是否能找到合法的 p, q 使得每个海盗获得金子的极限是整数(中间可以是分数)。。。

貌似很久以前 GCJ 出过一次海盗分金。。。这个题看起来推理过程要简单一些。。。
基本思想是先列出每个海盗分得黄金的等式,用简单的数论知识找到判别式,最后再用一些代数技巧估计 q 的上界,暴力枚举(或许,你也可以跳过这个步骤。。直接卡时)。

$$\begin{equation}
\begin{split}
& mf\sum_{i=0}^\infty r^i \newline
& r = (1 – f)^n \newline
& f = \frac{p}{q} \newline
\end{split}
\end{equation}$$

$$\begin{equation}
\begin{split}
mf\sum_{i=0}^\infty r^i & = \frac{mf}{1-r} \
& = \frac{mf}{1-(1-\frac{p}{q})^n} \
& = \frac{mf}{1-(\frac{q-p}{q})^n} \
& = \frac{mf}{(\frac{q^n-(q-p)^n}{q^n})} \
& = \frac{mfq^n}{q^n-(q-p)^n} \
& = \frac{mpq^{n-1}}{q^n-(q-p)^n} \
& = \frac{mpq^{n-1}}{q^n- \sum_{i=0}^{n}q^i(-p)^{n-i}\binom{n}{i}} \
& = \frac{mpq^{n-1}}{\sum_{i=0}^{n-1}q^i(-p)^{n-i}\binom{n}{i}} \
& = \frac{mq^{n-1}}{-\sum_{i=0}^{n-1}q^i(-p)^{n-1-i}\binom{n}{i}}
\end{split}
\end{equation}$$

上面的 q^{n-1} 和分母是互素的,因此在判定整除时可以直接忽略。
具体来说,如果 a, b 互素,那么 a^n – b^n 与 a 和 b 都互素。证明可以反证法,假设存在素因子,推出 a 和 b 不互素即可。。。
利用这个结论,不仅可以简化判别式,还可以发现任意考察哪个海盗都一样。。。。

上式还可以继续二项式展开。。。

$$\begin{equation}
\begin{split}
\frac{mp}{q^n-(q-p)^n} & = \frac{mp}{q^n- \sum_{i=0}^{n}q^i(-p)^{n-i}\binom{n}{i}} \
& = \frac{mp}{-\sum_{i=0}^{n-1}q^i(-p)^{n-i}\binom{n}{i}} \
& = \frac{m}{\sum_{i=0}^{n-1}q^i(-p)^{n-1-i}\binom{n}{i}}
\end{split}
\end{equation}$$

我们发现上面的 p 因子也可以消去。。。
进一步我们可以使用不等式对上式进行放缩,或者直接把 n 最小的情况往里面代入,得到 q 的上界即可。
其实我觉得还是挺难的囧。

Problem G. Mosaic Browsing

算法导论告诉我们,Rabin Karp 算法可以非常容易的将字符串匹配推广到矩形上(其实就是 Hash 乱搞),但是我们很快发现此题真正要处理的难点是通配符。
学习了例题之后我们发现只要用 FFT 就可以有效的解决这个问题了~!而且只有模式串有通配符。。判别式还要更简单一些。

似乎还有一种高级做法。。。我不会
https://twitter.com/heno_code/status/1590682021369884672

Problem E.

Problem F. Islands from the Sky

显然可以二分答案,更简单的做法是,对于每一条航线,去更新所有多边形的最小可行角度,最后再取最大值即可。
只需要对多边形的每个顶点做到航线的投影,然后反正切函数即可。

Problem K. Take On Meme

最后还剩两道几何题。。。Minkowski Addition + 凸包乱搞即可。

Problem D. Guardians of the Gallery

OMG,我们先要搞出多边形内部可以看见目标点的区域,是个凸多边形,然后只要求点到这个凸多边形的距离即可。

Posted by xiaodao
Category: 日常