A:看了题就很容易想到虚树吧,建出虚树后考虑整体扫一遍虚树,注意到这是一棵根向树,那么统计其实十分简单,将对 \(C\) 类节点的标记下放,\(A,B\) 类节点同时上传,如果在 DFS 的过程中发现这个节点可以被 \(A,B\) 类节点同时到达,则分讨取 \(u\) 还是取 \((u,fa)\) 即可,时间复杂度瓶颈在建立虚树,可以使用一些技巧做到线性吧。

B:沙比提/oh

C:不知道正解是啥,实际上可以直接暴力然后循环展开就碾过去了。隔壁队伍 vector 纯暴力都过了/oh

D:很明显,我不会三维几何。

E:赛时咋不读题呢?傻逼题错过了。如果可以确定一个技能影响的区间,问题变为区间可重覆盖方案计数,至此问题被分为两部分:

首先先考虑如何确定区间,考虑先求单边的,比如说先求右边,考虑使用排序制造单调性,将怪物按 \(a_i-b_{i+1}\) 从大到小排序,将技能按 \(R_i\) 从大到小排序,使用并查集维护被连锁的怪物即可。

接下来考虑 DP,设 \(f_i\) 表示 \(1\sim i\) 被完全覆盖的方案数,按右端点从小到大扫描每一个覆盖区间 \([l,r]\),有 DP 转移式:\(f_r\to \sum_{i=l-1}^r f_i\),\(\forall0\le i\le l-2, f_i\to f_i\times 2\)。

使用支持区间乘,单点加的线段树维护即可,时间复杂度线性对数。

F:设 \(f_i\) 表示升级到 \(i\) 所需的期望次数,考虑一本升级书 \((a,b)\):

  • 用:\(f_{i+1}\to f_i+1+(1-a)(1-b)(f_{i+1}-f_i)+(1-a)b f_{i+1}=(1-a)f_{i+1}+(a+b-ab)f_i+1\),后两项的含义是加上失败和报废的概率。
  • 不用:\(f_{i+1}\to f_{i+1}+1\)。

所以说 \(f_{i+1}\to \frac1{AB}\sum_{a,b}\min\{(1-a)f_{i+1}+(a+b-ab)f_i+1,f_{i+1}+1\}\),\(\min\) 不好转移,使用一些分类讨论的操作,考察:

\[f_{i+1}+1\ge (1-a)f_{i+1}+(a+b-ab)f_i+1
\]

化简后变成:

\[f_{i+1}\ge \frac{a+b-ab}{a}f_i
\]

这个时候我们找到了一些性质,即按 \(\frac{a+b-ab}{a}\) 排序后的二元组,一定是一段前缀使用,剩下的一定不用,枚举这段前缀的长度 \(t\),有:

\[f_{i+1}\to \min_t\{\frac 1 {AB} ((AB-t)(f_{i+1}+1)+\sum_{a,b\text{ pre }t}(1-a)f_{i+1}+(a+b-ab)f_i+1)\}
\]

考察在特定 \(t\) 下的式子,记 \(x=\sum_{a,b\text{ pre }t}(1-a),y=\sum_{a,b\text{ pre }t}(a+b-ab)\),\(x\) 和 \(y\) 可以随意维护:

\[ABf_{i+1}=(AB-t)f_{i+1}+AB-t+xf_{i+1}+yf_i + t
\]

化简一下可以得到:

\[(t-x)f_{i+1}=AB+yf_i
\]

直接计算即可,时间复杂度为 \(O(ABK)\)。

G:有人老老实实读完了题面,我不说是谁。

H:对连续段进行哈希,为了比较方便特别处理首段和末段就行了。

I:听说很简单,不是我写的就鸽了。

J:恶臭题,注意到小 A 会走任意一棵最大生成树,根据最大生成树的形态,可以将图上的边分为三种:

  • 关键边,无论如何,最大生成树上一定会包含这条边。
  • 关建边,最大生成树上可能包含的边。
  • 没用边,无论如何,最大生成树上一定不会有的边。

按边权排序后将相同边权的边放在一起处理,对于 Kruskal 中维护的连通块,连出相同边权的边(不连自环)后使用 Tarjan 算法求出桥边即可,因为桥边一定是关键边,自环则一定是没用边,其他被建出的边一定是关建边,如果此时 Kruskal 过程结束了,那么剩下的边就是没用边。

如果存在关键边,放一个人在关键边即可,否则的话,考虑关建边形成的子图,问题变为求删去尽可能少的边使图不连通,这是一个平面图最小割,套板即可。

K:恶臭题,维护最大,最小,次大,次小,一对,一对加最大,一对减最小,两对的答案,使用线段树维护即可。

L:大范围贪心,小范围背包即可。

Solution Set - 杭电多校 2022 Day2 一句话题解的更多相关文章

  1. 可持久化线段树的学习(区间第k大和查询历史版本的数据)(杭电多校赛第二场1011)

    以前我们学习了线段树可以知道,线段树的每一个节点都储存的是一段区间,所以线段树可以做简单的区间查询,更改等简单的操作. 而后面再做有些题目,就可能会碰到一种回退的操作.这里的回退是指回到未做各种操作之 ...

  2. 2018 Multi-University Training Contest 1 杭电多校第一场

    抱着可能杭电的多校1比牛客的多校1更恐怖的想法 看到三道签到题 幸福的都快哭出来了好吗 1001  Maximum Multiple(hdoj 6298) 链接:http://acm.hdu.edu. ...

  3. 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)

    咕咕咕了太久  多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...

  4. 2018 Multi-University Training Contest 2 杭电多校第二场

    开始逐渐习惯被多校虐orz  菜是原罪 1004  Game    (hdoj 6312) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6312 虽然披着 ...

  5. 2018 杭电多校3 - M.Walking Plan

    题目链接 Problem Description There are $$$n$$$ intersections in Bytetown, connected with $$$m$$$ one way ...

  6. 2017杭电多校第六场1011Classes

    传送门 Classes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...

  7. 2017杭电多校第五场Rikka with Subset

    Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  8. 2019杭电多校&CCPC网络赛&大一总结

    多校结束了, 网络赛结束了.发现自己还是太菜了,多校基本就是爆零和签到徘徊,第一次打这种高强度的比赛, 全英文,知识点又很广,充分暴露了自己菜的事实,发现数学还是很重要的.还是要多刷题,少玩游戏. 网 ...

  9. HDU 4941 Magical Forest(map映射+二分查找)杭电多校训练赛第七场1007

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4941 解题报告:给你一个n*m的矩阵,矩阵的一些方格中有水果,每个水果有一个能量值,现在有三种操作,第 ...

  10. HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902 解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是 ...

随机推荐

  1. SpringMVC学习笔记【狂神说】

    1.MVC是什么 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑.数据.显示分离的方法来组织代码. MVC主要作用是降低了视图与 ...

  2. 【Excel】IF条件函数公式怎么用?

    版本 Excel 2019 步骤 点击插入函数 打开文档,点击公式菜单下的插入函数. 双击选择IF函数 在函数列表双击选择IF函数. 输入条件测试值 在第一个输入框输入条件测试值. 设置输出结果值

  3. linux开机出现grub界面

    今天开机时候突然出现grub界面,并且卡在这里,记录一下解决办法 ①输入ls 2. 输入ls (hd0,6)/ 可以看到返回的就是linux系统的根目录,说明这个磁盘就是我们的系统的所在盘 如果ls ...

  4. CH582m模拟JoyStick使用USB与电脑通信

    目录 本程序改编自沁恒官网2022年1月更新的CH583EVT中的CompoundDev例程.这里只贴了main.c中的程序.能够实现:①直接接电脑,在设备管理器中能够查到被电脑识别为HID-comp ...

  5. element table 表格嵌套

    ///////////////////////////  代码如下 <template> <div class="report-forms-page"> & ...

  6. Qt实现抽奖程序

    一.简介 该程序命名为Lucky,实现的功能如下: 1. 加载抽奖人员名单,并保存加载路径: 2. 单击左键或者点击ctrl+s开始抽奖,并滚动显示人员名单,显示的人员名单格式为 部门-姓名. 3. ...

  7. windows下搭建nrf52832nordic_ble_sniffer_3.0+wireshark抓包环境

    准备工具 pythone3.7安装包 https://www.python.org/ftp/python/3.7.7/python-3.7.7-amd64.exe Wireshark-win64-3. ...

  8. MAMP PRO 使用指南 (配置nginx 重写)

    https://sawlove.com/mamp-pro-use-for-wp.html 1 location / { 2 if (!-e $request_filename) { 3 rewrite ...

  9. JavaScript 时间的操作

    1. 标准日期格式 转 时间戳 第一步,设置一个标准日期,获取这个日期格式的时间戳 let timeStr = "2020-08-10 12:34:45"; let newTime ...

  10. H3C交换机基本操作

    Console口登录配置 1.无认证登录console <H3C>system-view [H3C]user-interface aux 0 // 进入AUX用户界面 [H3C-line- ...