AtCoder ABC213 简要题解
这世道连 \(\rm ABC\) 都要写题解来续命了。。。
A - D
略。
E
有如下观察:
- 对于任意的四个方格,出去之后再回来可以调整为先在内部走到固定位置再走出去。
因此只需要考虑在一开始把内部的走法都连上即可不用考虑重复计算贡献的问题。
因此我们考虑对于每个点 \(P\) 按照下图连边:
.###.
##L##
#LPL#
##L##
.###.
对于每个 \(L\),若 \(L\) 不为障碍,我们从 \(P \rightarrow L\) 连一条边权为 \(0\) 的边;否则连边权为 \(1\) 的边。
对于每个 \(\#\),我们从 \(P\) 向其连一条边权为 \(1\) 的边。
注意到边权只有两种,于是可以使用双队列做到 \(\mathcal{O}(nm)\)。
更进一步的,我们发现边权为 \(0, 1\),那么实现的时候可以直接使用 \(\rm deque\) 代替优先队列。
F
对字符串 \(S\) 建出后缀树。
对于每个后缀,在后缀树上的祖先节点权值 \(+1\),每个后缀的答案就是祖先节点上权值之和,离线树上差分即可。
复杂度 \(\mathcal{O}(|\Sigma|n)\),注意由于后缀树是压缩的因此要考虑长度。
G
令 \(f_S\) 为只考虑 \(S\) 这个导出子图内部的边使得 \(S\) 联通的方案,\(cnt_S\) 为 \(S\) 这个导出子图内部的边,那么答案为:
\]
这部分可以直接计算,复杂度 \(\mathcal{O}(n2 ^ n)\),接下来考虑如何计算 \(f\)。
考虑容斥,不难得到转移(注意集合是无标号的,因此我们钦定一个元素在枚举集合内,由于本题需要求的 \(S\) 必须包含 \(1\),于是可以直接钦定 \(1\) 在枚举的子集内):
\]
由于本题数据范围较小,可以直接计算,复杂度 \(\mathcal{O}(3 ^ n)\)。
当然可以使用 \(\rm FWT\) 优化子集 \(\rm DP\) 做到 \(\mathcal{O}(n ^ 22 ^ n)\),好久没写过子集卷积了,于是写了这个做法。
H
考虑 \(\rm DP\),令 \(f_{i, j}\) 表示当且走到第 \(i\) 个点,已经走完了 \(j\) 的路程的方案,由于路径长度均 \(>1\) 所以可以直接转移。
考虑使用生成函数来刻画转移,令 \(F_i(x) = \sum\limits_j ^ \infty f_{i, j} x ^ j, G_{i, j}(x) = \sum\limits_{k = 1} ^ \infty p_{i, j, k}x ^ k\),那么有转移:
\]
做半在线卷积即可,复杂度 \(\mathcal{O}(mT \log ^ 2T)\)。
AtCoder ABC213 简要题解的更多相关文章
- AtCoder AGC002 简要题解
从今天开始,联赛之前大约要完成前 \(20\) 套 \(\rm AGC\),希望不要鸽. A 略 B 感觉这题比 \(\rm C\) 题难. 考虑对于每个时刻维护每个位置是否可能出现红球,那么一个时刻 ...
- AtCoder AGC003 简要题解
A 首先横向和纵向互相独立,因此只考虑横向的情况. 那么显然只要不只往一边走都一定存在一种构造方式,直接判断即可,复杂度 \(\mathcal{O}(|S|)\). B 首先相邻两个数同时配对两次可以 ...
- AtCoder ExaWizards 2019 简要题解
AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就 ...
- Noip 2014酱油记+简要题解
好吧,day2T1把d默认为1也是醉了,现在只能期待数据弱然后怒卡一等线吧QAQ Day0 第一次下午出发啊真是不错,才2小时左右就到了233,在车上把sao和fate补掉就到了= = 然后到宾馆之后 ...
- Tsinghua 2018 DSA PA2简要题解
反正没时间写,先把简要题解(嘴巴A题)都给他写了记录一下. upd:任务倒是完成了,我也自闭了. CST2018 2-1 Meteorites: 乘法版的石子合并,堆 + 高精度. 写起来有点烦貌似. ...
- Codeforces 863 简要题解
文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...
- HNOI2018简要题解
HNOI2018简要题解 D1T1 寻宝游戏 题意 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为 ...
- JXOI2018简要题解
JXOI2018简要题解 T1 排序问题 题意 九条可怜是一个热爱思考的女孩子. 九条可怜最近正在研究各种排序的性质,她发现了一种很有趣的排序方法: Gobo sort ! Gobo sort 的算法 ...
- BJOI2018简要题解
BJOI2018简要题解 D1T1 二进制 题意 pupil 发现对于一个十进制数,无论怎么将其的数字重新排列,均不影响其是不是 \(3\) 的倍数.他想研究对于二进制,是否也有类似的性质. 于是他生 ...
随机推荐
- (数据科学学习手札133)利用geopandas绘制拓扑着色地图
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在绘制某些地图时,为了凸显出每个独立的 ...
- Codeforces Gym-100985C: MaratonIME plays Nim(交互题&博弈)
C. MaratonIME plays Nim time limit per test : 2.0 smemory limit per test : 64 MBinputstandard inputo ...
- React MobX 开始
MobX 用于状态管理,简单高效.本文将于 React 上介绍如何开始,包括了: 了解 MobX 概念 从零准备 React 应用 MobX React.FC 写法 MobX React.Compon ...
- pytest之 fixture 实现机制
一.相同测试数据存放优化 在讲 fixture 实现机制之前,插入一段内容 上次有个小伙伴问我说,类似下面的用例代码情况,每条测试用例的数据都一样的,我们可以怎么进行优化吗? 当然是可以的 其实我们可 ...
- web服务之nginx部署
本期内容概要 了解web服务 Nginx和Apache的对比 部署Nginx 内容详细 1.什么是web服务 Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用 ...
- git中submodule子模块的添加、使用和删除
git中submodule子模块的添加.使用和删除 原文链接:https://blog.csdn.net/guotianqing/article/details/82391665背景项目中经常使用 ...
- Kibana_X-Pack管理Elasticsearch权限
在Kibana上面配置权限,验证对Elasticsearch权限控制, 主要步骤如下: 1.创建角色 2.创建用户,并且赋予用户角色 3.用户登陆,验证没有权限 4.赋予角色权限 5.用户登陆,验证拥 ...
- css 文本基础 实战 小米官方卡片案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Bom 基本使用以及定时器 倒计时案例
BOM 是浏览器对象模型 它提供了独立内容而与浏览器窗口进行交互的对象,其核心对象是window 窗口加载事件 注意:window.onload 就可以吧JS代码写在页面元素的上方,因为onload是 ...
- PowerShell 【按任意键继续】
1 function Pause(){ 2 [System.Console]::Write('按任意键继续...') 3 [void][System.Console]::ReadKey(1) 4 } ...