zoukankan      html  css  js  c++  java
  • 省选模拟25

    A.环
    题意:l个长度为n的恰好有k个1的循环同构01串,且满足s[i]--将某个1和右侧的0交换-->s[i+1],构造方案。n,l<=100,T<=10
    构造题无思路emm
    观察题目给出了80%的n k互质,可以猜测是有解的充要条件(虽然考场上没往这想)
    证明考虑下标和在各自满足两个限制下的同余式联立
    互质说明k关于n有逆元,以下数字都是%n意义下
    若有解必定存在一种构造方案(s[i]={frac{i}{k},frac{i+1}{k},...,frac{i+k-1}{k}})
    证明:
    (s[i+1][j]=s[i][j]+frac{1}{k}),统一右移(frac{1}{k})满足循环同构。(模意义下分布有交错,但整体平移)
    (frac{i}{k}+1=frac{(i+1)+k-1}{k}),也就是说把s[i]的开始接到s[i+1]的结束,1向右交换。

    B.DNA序列
    题意:给出n个串,每个串截取非空前缀按任意顺序拼成S,最小化S的字典序。n l<=100
    30pts保证顺序的部分分:直接从后向前暴力贪心。
    提示我们要求顺序。
    发现求n个串的最短前缀,使其无限循环都<s[i],这是第一维升序,剩下的且不存在循环前缀的部分降序。
    这样做的正确性在于我想要开始尽可能小,由于接在一起,我想要第一维相同的最后一个的后半部分字典序小,所以第二维降序。
    n l很小,暴力排序即可

    C.探寻
    题意:n个点的树,除根节点外有收益以及父边的花费,目标是到达给出的一个叶子节点,求从根节点进入需要额外带多少钱。n<=2e5
    发现类似打怪兽模型,为了便于处理,把目的地的收益设为inf,且同时允许负钱数,问题转化为求最大化走完一棵树的按dfs序钱数的前缀和中负数的最小值
    考虑过程,一棵子树x如果总收益(以下的收益都减去了花费)为负,那么一定不会被进入
    如果x是当前最优,说明选完x的父亲紧接着选x,这不就是dy上课讲的emmm
    set维护当前收益非负的且花费最小的点,容易知道这样每次取begin最优
    并查集维护代表元素,连通块内部的顺序固定,每加入一个点相当于确定了一步顺序,都累计到代表元素上。
    这样对所有连通块维护下答案即可。

  • 相关阅读:
    递归算法
    linux下如何使用split
    什么是OPTEE-OS
    ubuntu 18.04 64bit如何编译安装内核
    ubuntu 18.04 64bit没有声音如何解决
    如何解决ubuntu报的错误:You must put some 'source' URIs in your sources.list
    linux下如何安装解压工具rar
    如何将一个已有的仓库推送到一个空的新仓库中
    ubuntu 18.04 64bit下如何安装python开发工具jupyter
    ubuntu 18.04 64bit下如何安装python开发工具jupyterhub
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12329187.html
Copyright © 2011-2022 走看看