Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2) 题解
竟然上 GM 了,incredible(
A
首先如果 \(2050\nmid n\) 那显然就 \(-1\) 了,否则答案显然为 \(\dfrac{n}{2050}\) 的各位数字和。
B
显然这个最小值就是全部 \(nm\) 个数中最小的 \(m\) 个数之和,用个优先队列什么的维护一下即可,时间复杂度 \(nm\log m\)
C
zszz 凭我们的猜结论大法可知答案唯一存在并且每次往左往下走即可构造出答案。
D
首先们知道对于一个点而言,最优走法肯定是先走 \(\dfrac{k}{2}\) 步使得花费最小,然后原路返回。
因此考虑设 \(dp_{i,j,t}\) 为从 \((i,j)\) 出发走 \(t\) 步的最小花费,转移就枚举下一步到达的点随便更新一下即可,最后的 \(ans_{i,j}=dp_{i,j,k/2}\times 2\)
E
这个题还稍微有点意思,而且我上 GM 还要多亏了这道题拉开手速的差距啊(
首先特判掉全是 P 的情况,这个贡献显然为 \(1\)。
一个 observation 是如果 P 的连续段个数 \(\ge 2\),那么第一个 C 的位置显然只可能是第 \(1\) 个或者第 \(2\) 个,否则前两个都是 P,而 P 的连续段个数 \(\ge 2\),因此这两个连续段之间的间隔 \(\ge 2\),大于前两个 P 之间的距离 \(1\),不符合条件。
这样就可以分情况讨论了,如果第一个 C 的位置 \(\ge 3\),那 P 只可能形成一个连续段,不难发现合法的排列方式只可能形如 PPP...PPCCC...CC
,也就是说 P 是一段前缀,C 是一段后缀,枚举前缀长度随便算算即可。
如果第一个 C 的位置 \(\le 2\),那么手玩一下也可以发现合法的排列方式只可能形如 (P)CCC...CCPCPCPCPP...P(C)
枚举前面一段 C 的长度然后二分一下 CPCPCPCPC...PC
的长度即可。
所以说这个 \(\bmod 998244353\) 是假的(
F
这个题现场就差一点点没想出来啊啊啊!要是现场切掉了说不定涨的就不是 \(147\) 分而是 \(247\) 分甚至更多了(白 日 做 梦
首先看到这种最大值的期望时通常考虑容斥,这题也不例外,考虑设 \(f_i\) 表示团的大小 \(\le i\) 的概率,那么这个概率等价于将全部 \(n\) 个点染成黑白两种颜色,使得以每个点为中心,半径为 \(i\) 的区域中都至少包含一个白点。
这又可以进一步转化:对于所有白点,到其距离 \(\le i\) 的区域的并集刚好包含了整棵树。
这个概率可以通过树形 \(dp\) 求出,我们记 \(dp_{i,j}\) 表示对于 \(i\) 子树中的点,若 \(j\ge 0\) 则 \(i\) 上方深度最浅的被覆盖的点离 \(i\) 的距离为 \(j\) 的概率,否则表示 \(i\) 子树中深度最深的未被覆盖的点离 \(i\) 的距离为 \(-j-1\) 的概率,考虑转移,假设我们合并 \(dp_u\) 和 \(dp_v\),其中 \(u\) 为 \(v\) 的父亲,那么考虑两个值 \(dp_{u,i}\) 和 \(dp_{v,j}\),如果 \(i+j\ge 0\) 那么显然它可以覆盖全部 \(u\) 的子树,并且还能再向上覆盖 \(\max(i,j-1)\) 层,否则 \(i\) 子树中深度最深的未被覆盖的点离 \(i\) 的距离为 \(\min(i,j-1)\)。按照树形背包的套路转移即可,初始值 \(dp_{u,-1}=dp_{u,i}=\dfrac{1}{2}\)
时间复杂度 \(\mathcal O(n^3)\)。
G
看数据范围有点像网络流,事实上此题的的确确是网络流,考虑什么样的四个点能够组成题目中所说的平行四边形,我们将坐标系划分成一个个 \(2\times 2\) 的网格,下记:
- 横纵坐标都是偶数的点为 \(0\) 类点
- 横坐标为奇数,纵坐标为偶数的点为 \(1\) 类点
- 横坐标为偶数,纵坐标为奇数的点为 \(2\) 类点
- 横纵坐标都是奇数的点为 \(3\) 类点
那么将网格图做这样的划分后,可能的平行四边形有以下情况(这里蒯了 George1123 的图):
不难发现这样的平行四边形一定存在一条路径包含四类点的边,并且起点一定是 \(1\) 号点,终点一定是 \(3\) 号点,即 \(1\to 0\to 2\to 3\),并且这显然是组成题目所说的平行四边形的充要条件。
故考虑在相邻的 \((1,0),(0,2),(2,3)\) 点之间连边,然后拆点跑最小割即最大流即可。
Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2) 题解的更多相关文章
- Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest
Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest(dp+线段树) 题目链接 题意: 给定3个人互不相同的多个数字,可以 ...
- Educational Codeforces Round 43 (Rated for Div. 2)
Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...
- Educational Codeforces Round 48 (Rated for Div. 2) CD题解
Educational Codeforces Round 48 (Rated for Div. 2) C. Vasya And The Mushrooms 题目链接:https://codeforce ...
- Educational Codeforces Round 60 (Rated for Div. 2) 题解
Educational Codeforces Round 60 (Rated for Div. 2) 题目链接:https://codeforces.com/contest/1117 A. Best ...
- Educational Codeforces Round 59 (Rated for Div. 2) DE题解
Educational Codeforces Round 59 (Rated for Div. 2) D. Compression 题目链接:https://codeforces.com/contes ...
- Educational Codeforces Round 58 (Rated for Div. 2) 题解
Educational Codeforces Round 58 (Rated for Div. 2) 题目总链接:https://codeforces.com/contest/1101 A. Min ...
随机推荐
- vue3.x组件间通信,实用小技巧都在这里
本想简单写写,没想到说清楚已经变成了一篇很长的帖子,欢迎当笔记搜藏起来. props / emits 父子组件通信 props一般负责向子组件传递数据 下面是一个简单的例子,父组件向子组件传递了一个t ...
- JVM:类加载与字节码技术-2
JVM:类加载与字节码技术-2 说明:这是看了 bilibili 上 黑马程序员 的课程 JVM完整教程 后做的笔记 内容 这部分内容在上一篇笔记中: 类文件结构 字节码指令 编译期处理 类加载阶段 ...
- 微信小程序的发布流程
一.背景 在中大型的公司里,人员的分工非常仔细,一般会有不同岗位角色的员工同时参与同一个小程序项目.为此,小程序平台设计了不同的权限管理使得项目管理者可以更加高效管理整个团队的协同工作 以往我们在开发 ...
- 第五次Scrum Metting
日期:2021年5月2日 会议主要内容概述:讨论前端进度,修改后端接口. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 徐宇龙 后端 模板模块的实现及批量插入更 ...
- 华为HG255D挂卡中继专用旋风科技固件
正的挂卡不掉线不掉速,稳定上网看上去好像很NB的样子 挂卡设置教程:http://picimg.lshou.com/pic/clou ... /6/t/1/30247515.mp4 固件链接: htt ...
- 最接近的数 牛客网 程序员面试金典 C++ Python
最接近的数 牛客网 程序员面试金典 C++ Python 题目描述 有一个正整数,请找出其二进制表示中1的个数相同.且大小最接近的那两个数.(一个略大,一个略小) 给定正整数int x,请返回一个ve ...
- supervisor安装
supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中 ...
- Effective java 读书笔记(2)
第四条:通过私有构造器强化不可实例化的能力 有时可能需要编写只包含静态方法和静态域的类,这样的工具类不希望被实例化,因为实例化对它来说没有意义. 然而,在缺少显式构造器的情况下,系统会自动提供一个缺省 ...
- 解决虚拟机安装linux系统无法全屏问题 & vmtools安装
修改设置 1) 如下图右单击虚拟机名,选择[settings-],调出虚拟机设置界面. 2) 在设置界面选择[hardware]->[CD/DVD2(IDE)]->[Connection] ...
- idea查看方法在哪里被调用
方法一 选中方法名,右键选择Find Usages 方法二 选中方法快捷键ctrl + alt + h查看Hierarchy Callers