丽泽普及2022交流赛day17 社论
http://zhengruioi.com/contest/1088
SoyTony 重新 rk1 .
stO SoyTony Orz
省流:俩计数 .
目录
时间复杂度瞎算的 .
A
题面
一个 \(n\times m\) 的字符矩阵,从左上走到右下,只能往右往下走,问经过路径字典序最小是啥 .
题解
Key
每个字符贪心地走,当且仅当往右和往下字符相同时可能有两种后继状态
算法 1(SoyTony)
BFS .
算法 2(he_____he)
提交记录 .
口胡一下,可能理解错了 .
考虑 dp,由于字符串显然存不下(会 MLE),于是考虑维护排名 .
动态维护排名即可,因为合法的排名不会很多 .
算法 3
等价于 算法 1
按照走的步数枚举算贡献并标记转移点即可 .
B
题面
有 \(n\) 个玻璃杯,每杯里都有水 .
把这 \(n\) 杯里的水互相倒,最终使得只有 \(k\) 个杯子里有水。
易知从把水从第 \(i\) 个玻璃杯倒到第 \(j\) 个花费是 \(c_{i,j}\),求最小花费。
题解
乱搞(artalter)
首先这个玩意可以按最小生成树走 .
但是这个贪心显然是错的,于是我们钦定两条边然后暴力算最小生成树答案取最优 .
然后……就过了?(
算法
状压 dp,令 \(dp_S\) 表示 \(S\) 集合有水的最小花费,枚举一次倒水即可 .
时间复杂度 \(O(2^nn^2)\) .
C
题面
一张 \(n\) 个点的无向完全图,问边权范围 \(1\sim L\),且 \(1\to n\) 最短路为 \(k\) 的图数量 .
(BZOJ3868)
题解
算法
显然最短路大于 \(k\) 就没用了,可以直接设为 \(k+1\) .
枚举最短路为 \(s\) 的点数量 \(t_s\),于是可以钦定一个顺序算一下每个点到 \(1\) 的最短路 \(d\) .
考虑算边权的取值:
- 若 \(d_u=d_v\),显然 \(w(u,v)\) 取啥都行 .
- 若 \(d_u<d_v\),则边权不能小于 \(d_v-d_u\),要不然会破坏最短路 .
- 若 \(d_u>d_v\),和上面类似 .
那么边权就有 \(L-(d_u-d_v)+1\) 种可能(\(d_u>d_v\))
但是发现 \(d_u\) 的最短路性质必须要有一个至少一个 \(v\) 来保证 \(d_v + w(v,u) = d_u\)(能取到最短路).
然而使得那个柿子成立的边权 \(w\) 有 \(L-(d_u-d_v)\) 种可能(如果 \(d_u\ge k\) 这玩意就没贡献了,要丢掉).
于是目前的总方案数就是
\]
然而我们枚举的是最短路为 \(s\) 的点数量 \(t_s\),没有顺序(注意相同数)所以要再乘一个 \((n-2)!/\),然后因为重复要除以一个 \(\prod a_i\) .
时间复杂度 \(O\left(\dbinom nkn^2\log n\right)\)(抄的别的博客的,存疑)
这题真的牛逼,,,
似乎可以说是大力枚举题钓鱼/kx
D
题面
一个 \(n\) 个点的无向图,若满足:
- 无重边自环
- 删掉一条边或加上一条边后,满足 \(1\) 且存在一条欧拉回路
则称其是可爱的 .
求 \(n\) 个点可爱图个数,对 \(10^9+7\) 取模 .
两个图不同当且仅当某条边 \((u,v)\) 恰好只存在于某一个图中
题解
dp
显然题目等价于 \(n\) 点欧拉图个数乘上 \(\dbinom n2\) .
令 \(f_n\) 表示 \(i\) 个点的欧拉图数量,\(g_n\) 表示 \(n\) 个点度为偶数的无向图数量 .
众所周知图存在欧拉回路当且仅当没有奇点 .
于是考虑加一个点,容斥掉不连通的
如果原图存在一个欧拉子图,那么 \(i\) 必然要连另外一方面,因为要保持性质,\(i\) 必须连奇点,于是就不连通了(\(i\) 连所有奇点) .
\(g_n\) 显然等于 \(2^{\tbinom{n-1}2}\)(钦定 \(n-1\) 个点随便连,剩下那个点用来平衡奇度点),于是递推式就是
\]
Bonus
zero4338 说 \(f\) 的 EGF 是 \(g_{n-1}\) 的 EGF 的 \(\ln\) .
然后由于神秘的模 \(10^9+7\),分治 ntt 俩 \(\log\),MTT 一 \(\log\) .
我打不出代码来验证不了正确性,不过 zero 爷说的话哪里会有错呢?/kx
details .
(众所周知这个 \(g\) 可以 \(O(1)\) 求)
我草有原题,叫 建设游乐园,百度能搜到 题解 .
\(\ln\) 的结论是对的,等我变强后看看为啥吧 qwq .
zero4338 只说了连通图个数 EGF 是随便图个数 EGF 的 \(\ln\) .
但是这玩意和欧拉图个数有啥关系啊 /yun .
upd. 度数都为偶数的图可以分成若干个欧拉图 —— zero4338
然而 EI 给出了一模一样的式子,并丢了一个 OEIS 序列(我搜不到是因为我第一项错了qwq):
颤抖,颤抖。
丽泽普及2022交流赛day17 社论的更多相关文章
- 丽泽普及2022交流赛day21 社论
A 暴力 . greater<double> -> greater<int> \(100\) -> \(50\) 代码丢了 . B dp . 考场上代码抢救一下就过 ...
- 丽泽普及2022交流赛day18 社论
A 暴力扫一遍 B 算法 0 似乎是二分 算法 1 随便贪心 C 算法 1 枚举一个点作为最大值 / 最小值,用单调栈维护其作为答案的左右端点即可轻易计算 . 时间复杂度 \(O(n)\) . 算法 ...
- 丽泽普及2022交流赛day16 社论
这场比较平凡吧 . 省流: http://zhengruioi.com/contest/1087 目录 目录 A. Gene 题面 题解 算法一(正解) 算法二 B. Fight 题面 题解 算法一( ...
- 丽泽普及2022交流赛day15 社论
前言 link 太牛逼了,补完我一定放代码 . orz 越看越牛逼 orz . 时间复杂度都是口胡,不要信 . 以下是目录 目录 目录 前言 A 题面 题解 代码 B 题面 题解 代码 C 题面 题解 ...
- 丽泽普及2022交流赛day20 1/4社论
目录 T1 正方形 T2 玩蛇 T3 嗷呜 T4 开车 T1 正方形 略 T2 玩蛇 略 T3 嗷呜 (插一个删一个?) 找出相同的,丢掉循环节 . 感觉非常离谱,,, 正确性存疑 正确性问 SoyT ...
- 丽泽普及2022交流赛day22 无社论
开始掉分模式 . T3 有人上费用流了???(id) 不用 TOC 了 . T1 暴力 T2 没看见 任意两圆不相交,gg 包含关系容易维护,特判相切 . 单调栈即可 T3 贪心 T4 神秘题
- 丽泽普及2022交流赛day19 半社论
目录 No Problem Str Not TSP 题面 题解 代码 Game 题面 题解 代码 No Problem 暴力 Str 存在循环节,大力找出来即可,长度显然不超过 \(10^3\) . ...
- 丽泽普及2022交流赛day14
目录 A 题面 题解 B 题面 题解 C 题面 题解 D 题面 题解 A 题面 一个 \(1\dots n\) 的排列 \(p\) 和一个 \(1\dots n-1\) 的排列 \(q\) 满足 对排 ...
- 记:青岛理工ACM交流赛筹备工作总结篇
这几天筹备青岛理工ACM交流赛的过程中遇到了不少问题也涨了不少经验.对非常多事也有了和曾经不一样的看法, 一直在想事后把这几天的流水帐记一遍,一直没空直到今天考完C++才坐下来開始动笔.将这几天的忙 ...
随机推荐
- Flutter网络请求和数据解析
一:前言 - 什么是反射机制,Flutter为什么禁用反射机制? 在Flutter中它的网络请求和数据解析稍微的比较麻烦一点,因为Flutter不支持反射机制.相信大家都看到这么一条,就是Flutte ...
- 结合 Vuex 和 Pinia 做一个适合自己的状态管理 nf-state
一开始学习了一下 Vuex,感觉比较冗余,就自己做了一个轻量级的状态管理. 后来又学习了 Pinia,于是参考 Pinia 改进了一下自己的状态管理. 结合 Vuex 和 Pinia, 保留需要的功能 ...
- 【算法】选择排序(Selection Sort)(二)
选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余 ...
- 跨域问题和使用 cookie 的限制
前言 在我的文章 使用 cookie 的身份验证和授权 的最后,讲到了跨域问题,这篇文章就简单介绍跨域的相关知识,并说明在 net core 中怎么设置跨域. 使用的版本为 net6,并使用 Mini ...
- FTPClient处理中文乱码问题,实测通过了
使用FTPClient 操作FTP时,遇到路径或文件名中文乱码问题: 其中的一种处理方式: 在new FTPClient()后,可以设置编码, ftpClient=new FTPClient( ...
- 文字轮播与图片轮播?CSS 不在话下
今天,分享一个实际业务中能够用得上的动画技巧. 巧用逐帧动画,配合补间动画实现一个无限循环的轮播效果,像是这样: 看到上述示意图,有同学不禁会发问,这不是个非常简单的位移动画么? 我们来简单分析分析, ...
- VSCode 安装以及初步使用教程
老样子先介绍一下VSCode(是什么?干什么?有什么用?好处是什么?等) VisualStudioCode(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和m ...
- Dubbo的基本使用
Dubbo分为提供者和消费方 并且两者都要注册到ZK上 提供者 注解 @Service 这是dubbo包下的 消费组 注解 @Reference 远程注入 第一步导入依赖 <! ...
- synchronized下的 i+=2 和 i++ i++执行结果居然不一样
起因 逛[博客园-博问]时发现了一段有意思的问题: 问题链接:https://q.cnblogs.com/q/140032/ 这段代码是这样的: import java.util.concurrent ...
- SAP 动态选择屏幕实例
DATA:BEGIN OF gs_sel, werks TYPE marc-werks, "工厂 matnr TYPE mara-matnr, "物料 mtart TYPE mar ...