A.Salty Fish

upsolved

题意 偷苹果,每个节点上有\(a[i]\)个苹果,在某些位置有摄像机,看管子树里距离不超过\(k[i]\)的节点,损坏摄像机有\(c[i]\)代价,求最大收益。

做法 听说这题长链剖分,然后我立马去瞅了题解。

  • 妙哉,长链剖分贪心优化最大流
  • 抛开树形结构,这题是个标准的最小割套路题
  • 最小割=最大流,那么考虑在树上贪心的求最大流
  • 自底向上,对于每个摄像机优先流距离更远的节点,这样把更多的机会留给祖先,深度越低,祖先越容易流到
  • 然后长链剖分套个\(map\),维护高度信息
  • 而且\(map\)居然也有\(lower_{-}bound()\),学到了

B.Nonsense Time

solved by F0_0H 208min -2

题意 给定一个排列,初始全自闭,然后每个位置依次响应,求每个时刻的\(LIS\), 数据保证随机

做法

第一弹

  • 先上一个暴力做法
  • 可以想象,最终答案一定为很多段连续的依次递增的相同数字组成
  • 然后开始二分每个交界处的边界
  • 复杂度\(O(n*sqrt_N*log_N*log_N)\),稳T

第二弹

  • 整体二分
  • \(solve(l, r, ansl, ansr)\) 表示区间\([l, r]\)的答案在\([ansl, ansr]\)范围内
  • 然后根据\((l + r) / 2\)位置的答案分治处理
  • 终止条件为\(l==r\)或\(ansl == ansr\)
  • 可以大胆猜测,这样的复杂度为\(O(能过)\),少点常数就能卡过去

E.Snowy Smile

solved by F0_0H 67min -2

题意 二维平面n个带权的点,求用一个矩形框住的最大权值和

做法 扫描线加线段树动态查询最大子序列和


F. Faraway

solved by sdcgvhgj 230min -1

题意 求满足\((|x_i−x|+|y_i−y|)mod\ k_i=t_i\)的解的个数
做法

  • 观察到\(2≤k≤5,lcm(k_i)≤60\),所以每各60一循环
  • 将平面分成\(n^2\)块,对每一块枚举\(x\%60\)和\(y\%60\)的值,判断是否满足等式,统计个数,复杂度\(60^2n^3\)
  • 用了1h来debug才过,竟是因为少模了,这种题冷静看一遍代码胜于无脑写对拍呀!

D.Speed Dog

upsolved

题意 两个人分配代码长度,要求总和的最大值最小

做法

  • 首先两个人的代码长度一定相同,不然不是最优
  • 考虑对于\(a[i] <= b[i]\),先贪心地将\(a[i]\)全分给\(A\), 同理,\(b[i] > a[i]\), 将\(b[i]\)分给\(B\)
  • 如果\(A\)和\(B\)最终不相同,那么需要调整使他们相同
  • \(A < B\),优先使用 \(b[i] <= a[i]\) 且 \(b[i] / a[i]\) 尽可能大的组
  • \(B < A\),优先使用 \(a[i] < b[i]\) 且 \(a[i] / b[i]\) 尽可能大的组
  • 因为要动态的进行操作,所以可以在权值线段树上二分,对两种情况分别建树

做法2

  • 注意到最优解一定是两个人耗时相等。
  • 设第 i 道题分配比例为 \(x_i\)
  • 以 \(\sum_{i=1}^{n} (a_i+b_i)x_i = \sum_{i=1}^{n}b_i\),\(0\leq x_i\leq 1\) 为条件
  • 最小化 \(\sum_{i=1}^{n}a_ix_i\)
  • 这是个线性规划问题,最优解一定可以在可行域的顶点处取得。
  • 因此存在最优解非 0,非 1 的元素,最多只有一个【否则不是顶点】
  • 做变量代换 \(x_i'=(a_i+b_i)x_i\),约束条件可写成 \(\sum_{i=1}^{n}x_i' \leq C=\sum_{i=1}^{n} b_i,其中(0\leq x_i'\leq a_i+b_i)\)
  • 目标函数为 \(\sum_{i=1}^{n}\frac{a_i}{a_i+b_i}x_i'\)
  • 让 \(\frac{a_i}{a_i+b_i}\) 小的 \(i\) 对应的 \(x_i'\) 极大。
  • 按 \(\frac{a_i}{b_i}\) 的值插入权值线段树,取到 \(1\) 的 \(x_i\) 一定是标号最小的若干个 \(i\),在权值线段树上二分查找即可。

复盘 比赛时在这题的后期配合太憨憨了。


H. TDL

solved by rdc 25min -2

题意 签到题 2.0

做法 枚举 \(f(n,m)-f(n)\) 这个东西很小。

解体 枚举的元素太多了 TLE 了两发。


J. Ridiculous Netizens

upsolved

题意 给一棵树,点有点权,求乘积小于等于 \(m\) 连通块的个数。

做法

  • 考虑包含根节点的连通块个数。
  • 对树做 DFS 序,\(dp[i][j]\) 表示前 \(i\) 个点,乘积为 \(j\) 的连通块方案数。
  • 时间空间复杂度都要解体。完蛋了啊。
  • 数论分块!按 \([\frac{m}{x}]\) 的值,对 \(x\) 进行分块。可以证明[1]如果 \(x,y\) 属于同一块,那么 \(cx,cy(cx\leq m)\) 一定属于同一块。
  • 考虑转移,决策一下是否拿 \(i+1\) 号点,拿的话,转移到 \(i+1\),不拿的话,转移到 \(R[i+1]\)(\(R[i+1]\) 表示 \(i+1\) 的子树中 DFS 序最大的点)。
  • 不包含根呢?重心分解!

[1] 证明:令 \(m=ax+b=ay+d(0\leq b,d<a)\), \([\frac{m}{kx}]=[\frac{m}{ky}]=[\frac{a}{k}]\)

CCPC HangZhou 的一道题
Bitset 优化一下转移即可。


K. 11 Dimensions

solved by rdc 142min -2

题意 一个十进制数字,有些位置是 ?,输出字典序第 \(k\) 小,是 \(m\) 的倍数的数字。

做法

  • 可能复杂度不太对。
  • 预处理每个后缀,有多少种方案能构造出模 m 等于 a 的方案数,DP 即可。
  • 猜测大部分 ?都是 0. 于是每次二分下一个非 0 的 ?在什么地方。

L. Stay Real

solved by rdc 30min

题意 签到题 1.0,小根堆,两人博弈,轮流摘树叶。

做法 注意到这个小根堆,下证双方的最优策略都是取最大元素.

证明(假的)

  • 考虑反证
  • 对于局面 P,先手很任性,偏偏不选最大值,假设这时比选最大值更优。
  • 那后手把最大值吃了。
  • 先手:“我们两个换一下好不好?”
  • 演不下去了,仍然不会证。

2019 Multi-University Training Contest 6的更多相关文章

  1. 2019 Nowcoder Multi-University Training Contest 4 E Explorer

    线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...

  2. 2019 Nowcoder Multi-University Training Contest 1 H-XOR

    由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...

  3. 2019 Multi-University Training Contest 8

    2019 Multi-University Training Contest 8 C. Acesrc and Good Numbers 题意 \(f(d,n)\) 表示 1 到 n 中,d 出现的次数 ...

  4. 2019 Multi-University Training Contest 7

    2019 Multi-University Training Contest 7 A. A + B = C 题意 给出 \(a,b,c\) 解方程 \(a10^x+b10^y=c10^z\). tri ...

  5. 2019 Multi-University Training Contest 1

    2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...

  6. 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...

  7. 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 A. fraction upsolved 题意 输入 \(x,p\),输出最小的 \(b\) 使得 \(bx\%p&l ...

  8. HDU校赛 | 2019 Multi-University Training Contest 6

    2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 100 ...

  9. HDU校赛 | 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...

  10. HDU校赛 | 2019 Multi-University Training Contest 4

    2019 Multi-University Training Contest 4 http://acm.hdu.edu.cn/contests/contest_show.php?cid=851 100 ...

随机推荐

  1. 阿里技术面全A,终面却被产品经理拉下马。。。

    大纲: 一.投递简历 二.准备面试 三.技术一面 四.健身房里的技术二面 五.产品经理的死亡三面 六.总结 一.投递简历 找内推.大公司投简历尽量找内推,无论是校招还是社招.校招可以去牛客网或知乎找, ...

  2. windows下hexo+github搭建个人博客

    网上利用hexo搭建博客的教程非常多,大部分内容都大同小异,选择一篇合适的参考,跟着一步一步来即可. 但是,很多博客由于发布时间较为久远等问题,其中某些操作在现在已不再适用,从而导致类似于我这样的小白 ...

  3. feign传输String json串 自动转义 \ 解决方法

    @RequestMapping(value={"/sysOrgRest/getInfoByOrgIds"}, method={org.springframework.web.bin ...

  4. 以股票案例入门基于SVM的机器学习

    SVM是Support Vector Machine的缩写,中文叫支持向量机,通过它可以对样本数据进行分类.以股票为例,SVM能根据若干特征样本数据,把待预测的目标结果划分成“涨”和”跌”两种,从而实 ...

  5. c# 将dwg文件转化为pdf

    https://blog.csdn.net/mywaster/article/details/50220379 最近做一个项目,要求将dwg文件转化为pdf,开发工具VS2010 + AutoCad ...

  6. 集合中Iterator迭代器的使用以及实现原理。

    collection集合元素通用的获取方式,在取之前先要判断集合中有没有元素,如果有就把这个元素取出来,继续在判断,如果还有就再取出来,一直把集合中的元素全取出来,这种去出方式叫做迭代. 迭代器的作用 ...

  7. keras 学习-线性回归

    园子里头看到了一些最基础的 keras 入门指导, 用一层网络,可以训练一个简单的线性回归模型. 自己学习了一下,按照教程走下来,结果不尽如人意,下面是具体的过程. 第一步: 生成随机数据,绘出散点图 ...

  8. Linux 目录递归赋权,解决 Linux权限不够

    如你要操作一个目录下的文件时,系统提示 “权限不够”,可用以下方法解决. 如 test 文件目录. 1.用root账号登陆系统. 2.输入如下命令: chmod 777 test -R 这样访问.修改 ...

  9. 基于Spring Boot自建分布式基础应用

    目前刚入职了一家公司,要求替换当前系统(单体应用)以满足每日十万单量和一定系统用户负载以及保证开发质量和效率.由我来设计一套基础架构和建设基础开发测试运维环境,github地址. 出于本公司开发现状及 ...

  10. net core WebApi——文件分片上传与跨域请求处理

    目录 前言 开始 测试 跨域 小结 @ 前言 在之前整理完一套简单的后台基础工程后,因为业务需要鼓捣了文件上传跟下载,整理完后就迫不及待的想分享出来,希望有用到文件相关操作的朋友可以得到些帮助. 开始 ...