省选 2018 杂题汇总

2024-01-30 01:38
文章标签 汇总 2018 杂题 省选

本文主要是介绍省选 2018 杂题汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于这些省太强了,6道做完不现实,于是就选了一些简单的做
[SDOI2018]战略游戏
答案为两条路径的必经的割点,正好是两点在圆方树上的圆点个数
然后每次询问建立虚树查询一下即可
[SDOI2018]荣誉称号
题意:将所有二叉树上含有 k+1 个点的路径的 ∑ a i \sum a_i ai 变成 m 的倍数的最小代价
发现一个点与它的 k+1 级祖先同余,也就是说我们只需要考虑 k+1 层
考虑 dp,令 f i , j f_{i,j} fi,j 表示从 i 往下,止于 k+1 层,链的和为 j 的最小代价,转移的话枚举当前边怎么变
发现需要预处理 v a l i , j val_{i,j} vali,j 表示把 a i a_i ai 以及 i 的附属结点的一堆 a i a_i ai,变成 j j j 的最小代价
m d z z mdzz mdzz 预处理是 O ( n m ) O(nm) O(nm) 的,然后发现可以 O ( n ) O(n) O(n) 预处理出 v a l i , 0 val_{i,0} vali,0 然后通过增量法 推到 v a l i , j val_{i,j} vali,j
如何增量? i 的附属结点有先全部充钱,增量为 ∑ b i \sum b_i bi s u m sum sum 可以 O ( n ) O(n) O(n) 处理
但是有些充了 m 的就可以全部不冲,所以要减去 ∑ a i = j m ∗ b i \sum_{a_i=j}m*b_i ai=jmbi,也可以 O ( n ) O(n) O(n) 处理,
用一个 O ( 2 k ∗ m ) O(2^k*m) O(2km) 的数组来存
复杂度是神仙一般的 O ( n + 2 k ∗ m ) O(n+2^k*m) O(n+2km)
[八省联考2018]劈配
花式匈牙利,匈牙利匹配的时候可以强行匹配多个,如果匹配满了,就把那些人全部丢去在同一志愿重新匹配,复杂度是神仙一般严重不满的 O ( m ∗ n 2 ∗ c ) O(m*n^2*c) O(mn2c)
对于第二问,可以二分答案,把排名在它前面的做一次匈牙利,然后再对它做一次看最多能匹配到哪儿
复杂度是 O ( n 3 ∗ m ∗ l o g n ∗ c ) O(n^3*m*logn*c) O(n3mlognc)
然后发现可以暴力记录每次匈牙利完了的结果(前缀),然后就可以跑严重不满的 O ( n 2 ∗ m ∗ l o g n ∗ c ) O(n^2*m*logn*c) O(n2mlognc)
[八省联考2018]林克卡特树lct
冷静分析后发现需要在树上选 k+1 条链,使和最大化
然后可以树形 d p dp dp,令 f i , j , 0 / 1 / 2 f_{i,j,0/1/2} fi,j,0/1/2 表示到 i,选了 j 条链,当前点不在链上,是链的一个端点,或是在链的中间的方案数
f u , j , 0 = m a x ( f u , j , 0 , f u , k , 0 + f v , j − k , 0 ) f_{u,j,0}=max(f_{u,j,0},f_{u,k,0}+f_{v,j-k,0}) fu,j,0=max(fu,j,0,fu,k,0+fv,jk,0)
f u , j , 1 = m a x ( f u , j , 1 , f u , k , 0 + f v , j − k , 1 + w i , f u , k , 1 + f v , j − k , 0 ) f_{u,j,1}=max(f_{u,j,1},f_{u,k,0}+f_{v,j-k,1}+w_i,f_{u,k,1}+f_{v,j-k,0}) fu,j,1=max(fu,j,1,fu,k,0+fv,jk,1+wi,fu,k,1+fv,jk,0)
f u , j , 2 = m a x ( f u , j , 2 , f u , k , 1 + f v , j − k − 1 , 1 + w i , f u , k , 2 + f v , j − k , 0 ) f_{u,j,2}=max(f_{u,j,2},f_{u,k,1}+f_{v,j-k-1,1}+w_i,f_{u,k,2}+f_{v,j-k,0}) fu,j,2=max(fu,j,2,fu,k,1+fv,jk1,1+wi,fu,k,2+fv,jk,0)
每个点递归完后合并 f u , i , 0 = m a x ( f u , i , 0 , f u , i − 1 , 1 , f u , i , 2 ) f_{u,i,0}=max(f_{u,i,0},f_{u,i-1,1},f_{u, i, 2}) fu,i,0=max(fu,i,0,fu,i1,1,fu,i,2)
k ≤ 3 e 5 k\le 3e5 k3e5 时,我们可以在每形成一个链的时加一个 m i d mid mid,然后看最后选出几个链,如果多了就把
m i d mid mid减小,反之加大,又名 dp 凸优化
[FJOI2018]领导集团问题
在一棵树上选一些点,使得祖先比儿子小,问最多选多少个
俗称:树上LIS
类似一般LIS,我们维护大小为1,2…,n 的LIS的最大高度是多少
每次进来一个点的时候,二分到第一个比它小的,然后把它改成当前点的权值
如果没有比它小的,那么把它插入,表示最大长度又大了1
于是用 set 启发式合并就可以了,其实 set 的大小就是 LIS的大小

这篇关于省选 2018 杂题汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/658742

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

IEEE会议投稿资料汇总http://cadcg2015.nwpu.edu.cn/index.htm

最近投了篇IEEE的顶级会议文章,一下是比较有用的一些资料,以供参考。 1.会议主页:http://cadcg2015.nwpu.edu.cn/index.htm     (The 14th International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics 2015)) 2.I

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

2018秋招C/C++面试题总结

博主从8月中旬开始大大小小面试了十几家公司,至今也许是告一段落吧,希望后面会有好结果,因此总结记录一些C/C++方向常见的问题。和大家一起学习! 参考了互联网的各种资源,自己尝试归类整理,谢谢~ 一、C和C++的区别是什么? C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。 C中函数不能进行重载,C++函数可以重载 C++在C的基础上增添类,C是一个结构

C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc

文章目录 1、fatal error : sw/redis++/redis.h2、fatal error: dwarf.h: No such file or directory3、fatal error: elfutils/libdw.h: No such file or directory4、fatal error: libunwind.h: No such file or directo

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

vulhub GhostScript 沙箱绕过(CVE-2018-16509)

1.执行以下命令启动靶场环境并在浏览器访问 cd vulhub/ghostscript/CVE-2018-16509 #进入漏洞环境所在目录   docker-compose up -d #启动靶场   docker ps #查看容器信息 2.访问网页 3.下载包含payload的png文件 vulhub/ghostscript/CVE-2018-16509/poc.png at

[JAVA基础知识汇总-1] 创建线程的几种方式

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池 可以认为有四种方式,也可以认为有一种,因为都跟Runnable接口有关 1. 继承Thread类 代码 public class Thread1ExtendsThread extends Thread {// public Thread1(String n