zoukankan      html  css  js  c++  java
  • 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条满足条件的边”的答案就用剩下的边从小往大加来更新答案。

    绿绿的情况分别搞一下。

    注意图可能不连通。

  • 相关阅读:
    Python动态展示遗传算法求解TSP旅行商问题
    MOEAD算法中均匀权向量的实现---Python
    HDU 5294 多校第一场1007题 最短路+最小割
    POJ 3261 Milk Patterns sa+二分
    HDU 4292 FOOD 2012 ACM/ICPC Asia Regional Chengdu Online
    CodeForces 201A Clear Symmetry
    POJ 1679 The Unique MST 确定MST是否唯一
    POJ 3268 Silver Cow Party 最短路 基础题
    POJ 2139 SIx Degrees of Cowvin Bacon 最短路 水題
    POJ2229 Sumsets 基礎DP
  • 原文地址:https://www.cnblogs.com/finder-iot/p/9420143.html
Copyright © 2011-2022 走看看