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\) 这玩意就没贡献了,要丢掉).

于是目前的总方案数就是

\[ans = \prod(L-(d_u-d_v)+1) - \prod(L-(d_u-d_v))
\]

然而我们枚举的是最短路为 \(s\) 的点数量 \(t_s\),没有顺序(注意相同数)所以要再乘一个 \((n-2)!/\),然后因为重复要除以一个 \(\prod a_i\) .

时间复杂度 \(O\left(\dbinom nkn^2\log n\right)\)(抄的别的博客的,存疑)


这题真的牛逼,,,

似乎可以说是大力枚举题钓鱼/kx

D

题面

一个 \(n\) 个点的无向图,若满足:

  1. 无重边自环
  2. 删掉一条边或加上一条边后,满足 \(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\) 个点随便连,剩下那个点用来平衡奇度点),于是递推式就是

\[f_n=g_n-\sum_{i=1}^{n-1}f_ig_{n-i}\dbinom{n-1}{i-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 社论的更多相关文章

  1. 丽泽普及2022交流赛day21 社论

    A 暴力 . greater<double> -> greater<int> \(100\) -> \(50\) 代码丢了 . B dp . 考场上代码抢救一下就过 ...

  2. 丽泽普及2022交流赛day18 社论

    A 暴力扫一遍 B 算法 0 似乎是二分 算法 1 随便贪心 C 算法 1 枚举一个点作为最大值 / 最小值,用单调栈维护其作为答案的左右端点即可轻易计算 . 时间复杂度 \(O(n)\) . 算法 ...

  3. 丽泽普及2022交流赛day16 社论

    这场比较平凡吧 . 省流: http://zhengruioi.com/contest/1087 目录 目录 A. Gene 题面 题解 算法一(正解) 算法二 B. Fight 题面 题解 算法一( ...

  4. 丽泽普及2022交流赛day15 社论

    前言 link 太牛逼了,补完我一定放代码 . orz 越看越牛逼 orz . 时间复杂度都是口胡,不要信 . 以下是目录 目录 目录 前言 A 题面 题解 代码 B 题面 题解 代码 C 题面 题解 ...

  5. 丽泽普及2022交流赛day20 1/4社论

    目录 T1 正方形 T2 玩蛇 T3 嗷呜 T4 开车 T1 正方形 略 T2 玩蛇 略 T3 嗷呜 (插一个删一个?) 找出相同的,丢掉循环节 . 感觉非常离谱,,, 正确性存疑 正确性问 SoyT ...

  6. 丽泽普及2022交流赛day22 无社论

    开始掉分模式 . T3 有人上费用流了???(id) 不用 TOC 了 . T1 暴力 T2 没看见 任意两圆不相交,gg 包含关系容易维护,特判相切 . 单调栈即可 T3 贪心 T4 神秘题

  7. 丽泽普及2022交流赛day19 半社论

    目录 No Problem Str Not TSP 题面 题解 代码 Game 题面 题解 代码 No Problem 暴力 Str 存在循环节,大力找出来即可,长度显然不超过 \(10^3\) . ...

  8. 丽泽普及2022交流赛day14

    目录 A 题面 题解 B 题面 题解 C 题面 题解 D 题面 题解 A 题面 一个 \(1\dots n\) 的排列 \(p\) 和一个 \(1\dots n-1\) 的排列 \(q\) 满足 对排 ...

  9. 记:青岛理工ACM交流赛筹备工作总结篇

    这几天筹备青岛理工ACM交流赛的过程中遇到了不少问题也涨了不少经验.对非常多事也有了和曾经不一样的看法, ​一直在想事后把这几天的流水帐记一遍,一直没空直到今天考完C++才坐下来開始动笔.将这几天的忙 ...

随机推荐

  1. Flutter网络请求和数据解析

    一:前言 - 什么是反射机制,Flutter为什么禁用反射机制? 在Flutter中它的网络请求和数据解析稍微的比较麻烦一点,因为Flutter不支持反射机制.相信大家都看到这么一条,就是Flutte ...

  2. 结合 Vuex 和 Pinia 做一个适合自己的状态管理 nf-state

    一开始学习了一下 Vuex,感觉比较冗余,就自己做了一个轻量级的状态管理. 后来又学习了 Pinia,于是参考 Pinia 改进了一下自己的状态管理. 结合 Vuex 和 Pinia, 保留需要的功能 ...

  3. 【算法】选择排序(Selection Sort)(二)

    选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余 ...

  4. 跨域问题和使用 cookie 的限制

    前言 在我的文章 使用 cookie 的身份验证和授权 的最后,讲到了跨域问题,这篇文章就简单介绍跨域的相关知识,并说明在 net core 中怎么设置跨域. 使用的版本为 net6,并使用 Mini ...

  5. FTPClient处理中文乱码问题,实测通过了

    使用FTPClient 操作FTP时,遇到路径或文件名中文乱码问题:   其中的一种处理方式:   在new FTPClient()后,可以设置编码, ftpClient=new FTPClient( ...

  6. 文字轮播与图片轮播?CSS 不在话下

    今天,分享一个实际业务中能够用得上的动画技巧. 巧用逐帧动画,配合补间动画实现一个无限循环的轮播效果,像是这样: 看到上述示意图,有同学不禁会发问,这不是个非常简单的位移动画么? 我们来简单分析分析, ...

  7. VSCode 安装以及初步使用教程

    老样子先介绍一下VSCode(是什么?干什么?有什么用?好处是什么?等) VisualStudioCode(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和m ...

  8. Dubbo的基本使用

    Dubbo分为提供者和消费方  并且两者都要注册到ZK上 提供者 注解    @Service   这是dubbo包下的 消费组 注解    @Reference 远程注入 第一步导入依赖 <! ...

  9. synchronized下的 i+=2 和 i++ i++执行结果居然不一样

    起因 逛[博客园-博问]时发现了一段有意思的问题: 问题链接:https://q.cnblogs.com/q/140032/ 这段代码是这样的: import java.util.concurrent ...

  10. SAP 动态选择屏幕实例

    DATA:BEGIN OF gs_sel, werks TYPE marc-werks, "工厂 matnr TYPE mara-matnr, "物料 mtart TYPE mar ...