• Codeforces Round #570 (Div. 3)


    A

    位数和为(4)的倍数,涉及到进位,直接把最近的(30)个判断一下就好了

    B

    最大的可能的为:最小值(+k),如果最大值能(≤)该值则成立,否则输出(-1)

    C

    先全部选(b),看是否能为正,在考虑正的这部分去选(a),就等于补掉多少个(a-b)

    D

    有一个明显的坑点就是不能整体赋值,大部分(t)掉的都是这个原因

    我们统计每种颜色的个数,排好序后单独扔进一个数组,考虑从大到小遍历,每次优先取满足条件的最大值

    具体实现就是拿一个指针记录能选的最大值,如果遍历到的值刚好为指针则选择,指针左移;如果大于指针,也选指针;如果小于的话,选该值,将指针赋为该值(-1)

    E/H

    (lst_i)表示该字符上一次出现的位置;用(f_{i,j})表示前(i)个字符,长度为(j)的互异的个数

    • (lst_i=0),说明该字符第一次出现,(f_{i,j}=f_{i-1,j}+f_{i-1,j-1},++f_{i,1})

    • (lst_i≠1),说明前面出现过该字符了,我们得考虑容斥,显然(lst_i)前面与其组成子序列的前缀也能与(i)组成相同的子序列,(f_{i,j}=f_{i-1,j}+f_{i-1,j-1}-f_{lst_i-1,j-1})

    (f)数组成指数级增长,而(k)有限,故限制(f)不超过(k)

    每次优先选取最长的子序列,直接统计答案就好了

    F

    最难的题,用贪心,每次选取最大值,然后除掉因子去选

    但我们发现能构造出(hack)的数据,比如(6,10,15,30),这是因为(frac{1}{5}+frac{1}{3}+frac{1}{2}>1),特判一下这种情况就好了

    G

  • 相关阅读:
    new in swift
    Mac Git [remote rejected] master -> master (pre-receive hook declined) 解决方案
    Mac git 代码的Add 以及提交
    swift storyboard 跳转的2 种方式
    iOS 常用指令(svn cocoa pod)
    java面试题(晨星)
    谈Spring的理解
    软件产品开发文档大纲
    商城项目要点
    金蝶面试小记
  • 原文地址:https://www.cnblogs.com/y2823774827y/p/11094831.html
Copyright © 2020-2023  润新知