这世道连 \(\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\) 这个导出子图内部的边,那么答案为:

\[ans_k = \sum\limits_{k \in S} f_S \times 2 ^ {cnt_{U - S}}
\]

这部分可以直接计算,复杂度 \(\mathcal{O}(n2 ^ n)\),接下来考虑如何计算 \(f\)。

考虑容斥,不难得到转移(注意集合是无标号的,因此我们钦定一个元素在枚举集合内,由于本题需要求的 \(S\) 必须包含 \(1\),于是可以直接钦定 \(1\) 在枚举的子集内):

\[f_S = 2 ^ {cnt_S} - \sum\limits_{1 \in T, T \subseteq S} f_T \times 2 ^ {cnt_{S - T}}
\]

由于本题数据范围较小,可以直接计算,复杂度 \(\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\),那么有转移:

\[F_i(x) = \sum\limits_{j = 1} ^ n F_j(x) \times G_{j, i}(x)
\]

做半在线卷积即可,复杂度 \(\mathcal{O}(mT \log ^ 2T)\)。

AtCoder ABC213 简要题解的更多相关文章

  1. AtCoder AGC002 简要题解

    从今天开始,联赛之前大约要完成前 \(20\) 套 \(\rm AGC\),希望不要鸽. A 略 B 感觉这题比 \(\rm C\) 题难. 考虑对于每个时刻维护每个位置是否可能出现红球,那么一个时刻 ...

  2. AtCoder AGC003 简要题解

    A 首先横向和纵向互相独立,因此只考虑横向的情况. 那么显然只要不只往一边走都一定存在一种构造方式,直接判断即可,复杂度 \(\mathcal{O}(|S|)\). B 首先相邻两个数同时配对两次可以 ...

  3. AtCoder ExaWizards 2019 简要题解

    AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就 ...

  4. Noip 2014酱油记+简要题解

    好吧,day2T1把d默认为1也是醉了,现在只能期待数据弱然后怒卡一等线吧QAQ Day0 第一次下午出发啊真是不错,才2小时左右就到了233,在车上把sao和fate补掉就到了= = 然后到宾馆之后 ...

  5. Tsinghua 2018 DSA PA2简要题解

    反正没时间写,先把简要题解(嘴巴A题)都给他写了记录一下. upd:任务倒是完成了,我也自闭了. CST2018 2-1 Meteorites: 乘法版的石子合并,堆 + 高精度. 写起来有点烦貌似. ...

  6. Codeforces 863 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...

  7. HNOI2018简要题解

    HNOI2018简要题解 D1T1 寻宝游戏 题意 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为 ...

  8. JXOI2018简要题解

    JXOI2018简要题解 T1 排序问题 题意 九条可怜是一个热爱思考的女孩子. 九条可怜最近正在研究各种排序的性质,她发现了一种很有趣的排序方法: Gobo sort ! Gobo sort 的算法 ...

  9. BJOI2018简要题解

    BJOI2018简要题解 D1T1 二进制 题意 pupil 发现对于一个十进制数,无论怎么将其的数字重新排列,均不影响其是不是 \(3\) 的倍数.他想研究对于二进制,是否也有类似的性质. 于是他生 ...

随机推荐

  1. 手机端h5页面 图片根据手势放大缩小

    pinchzoom.js 这个插件可以简单的实现这一功能 <div class="big_pos_img page"> <div class="pinc ...

  2. 基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/21727306 一.语言和环境 1.实现语言: JAVA语言. 2.环境要求: MyE ...

  3. 安装rebar3

    下载编译好的版本 wget https://s3.amazonaws.com/rebar3/rebar3 chmod +x /home/hylink/rebar3 (赋权) ./rebar3 loca ...

  4. .net core使用rabbitmq消息队列 (二)

    之前有写过.net core集成使用rabbitmq的博文,见.net core使用rabbitmq消息队列,但是里面的使用很简单,而且还有几个bug,想改下,但是后来想了想,还是算了,之前使用的是. ...

  5. Dom 键盘事件以及实战案例

    键盘事件 //键盘操作 //1.某键盘按下执行的操作 document是对文档进行触发 document.onkeyup = function(){ console.log('你好') } docum ...

  6. Flask_响应(四)

    响应即视图函数的返回值,前面的例子的返回值都很简单,直接返回值.但是Flask Http协议的返回值中通常还会有以下几种不同的方式. 一.return元组 通过return一个元组构造响应信息. 语法 ...

  7. [ bootstrap ] 图片内容占用padding的范围,如何解决?

    问题描述: 从效果图看到,图片内容占据了padding的范围,怎么解决呢? html代码 <div class="container"> <div class=& ...

  8. spring boot 启动警告 WARN 15684 --- [ restartedMain] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources. 解决

    添加一个配置文件config.properties ,即便是空的也是可以的

  9. Word2010制作电子印章

    原文链接: https://www.toutiao.com/i6488971642788643341/ 选择"插入"选项卡,"插图"功能组,"形状&q ...

  10. JQuery iframe 刷新效果

    假如有一个选项卡.tab-content,里面有多个iframe 只刷新显示的那个iframe,所以要用到:visible $('.tab-content iframe:visible')[0].co ...