2018"百度之星"程序设计大赛 - 资格赛 - 题集
Posted finder-iot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018"百度之星"程序设计大赛 - 资格赛 - 题集相关的知识,希望对你有一定的参考价值。
1001
$ 1 leq m leq 10 $
像是状压的复杂度。
于是我们(用二进制)枚举留下的问题集合
然后把这个集合和问卷们的答案集合 $ & $ 一下
就可以只留下被选中的问题的答案了。
之后扫一遍随便判一下重。
1002
非空子串中字典序最小的子串长度一定是 $ 1 $ 。
咱们就记录一下每一个字母出现次数的前缀和,
每次询问就找到出现过的最先的那个字符就星了。
1003
整数规划好像是个NPC问题,
所以我们肯定不能直接上整数规划。
咱们来尝试把问题转换一下。
n=2
x1---y1
/
X
/ x2---y2
看起来像是个二分图。
二分图我们可以想到什么呢?
KM算法。
它有一个奇特的性质,
就是假设 $ x_i $ 和 $ y_j $ 被一条边 $ a_{i,j} $ 匹配上,
那么 $ x_i $ 的标签 $ l_i $ 和 $ y_j $ 的标签 $ r_j $ 有这样一个式子是成立的:
$ l_i + r_j geq a_{i,j} $
题目要求 $ l_i + r_j leq a_{i,j} $ ?
把它变成 $ - l_i - r_j leq -a_{i,j} $ ,
然后硬上KM就好了。
注意标签的初始值。
1004
如果你有好办法,
请教教我这个蒟蒻吧。
1005
我们先想一下动态规划。
设 $ f_{i,j} $ 表示以第 $ i $ 个数打止的长度为 $ j $ 的上升子序列个数。
首先 $ f_{i,1} = 1 $ 。
然后也可以知道 $ f_{i,j} = sum{f_{k,j-1}} , k < i quad mathrm{and}quad q_k < q_i $ 。
这可以用一些树状数组来帮助它转移。
但是 $ 1 leq n leq 10000 $ ...
注意一下这句话。
你可以认为给定的排列是从所有 1,2,...,n 的排列中等概率随机选出的。
如果是随机数据的话,我们可以得知,
它的最长的lis不会太长。
可能长度只有几百也说不定。
1006
要答案最优的话,
就先只用条件中给定的2种颜色跑一遍最小生成树,
然后“恰好k条满足条件的边”的答案就用剩下的边从小往大加来更新答案。
把红绿和绿蓝的情况分别搞一下。
注意图可能不连通。
以上是关于2018"百度之星"程序设计大赛 - 资格赛 - 题集的主要内容,如果未能解决你的问题,请参考以下文章
hdu 6082 度度熊与邪恶大魔王(2017"百度之星"程序设计大赛 - 资格赛 )
2018"百度之星"程序设计大赛 - 资格赛 A/B/E/F
2017"百度之星"程序设计大赛 - 复赛1001&&HDU 6144 Arithmetic of Bombjava大模拟