zoukankan      html  css  js  c++  java
  • ABC216

    ABC216

    A

    签到

    B

    签到

    C

    一开始有一个数字\(0\),每次可以选择:

    \(A\):把数字加一

    \(B\):把数字乘二

    怎么用\(120\)次以内的操作得到数字\(n(n\leq1e18)\)

    解:

    \(n\)是偶数则除二,否则减一再除二

    D

    \(n\)个栈,每个栈里有\(k_i\)个数字,总共有\(2n\)个数字,其中\(1~n\)每个数字出现两次。

    每次可以选择两个相同的栈顶数字消掉,能否消掉全部数字?

    解:

    模拟

    E

    \(n(1e5)\)个数字,有最多\(k(2e9)\)次选择机会,每次选择一个\(a_i\)得到\(a_i\)的贡献并将\(a_i-1\),求最大贡献

    解:

    二分大于多少的数字可以全部取走,剩下的不到\(n\)的次数用堆每次挑最大的取

    F

    给定长度为\(n(5000)\)的数组\(A\)\(B(a_i,b_i\leq 5000)\),求满足

    \[max\{A_{i\in S}\}\geq \sum_{i\in S}B_i \]

    的非空子序列\(S\)的个数,模\(998244353\)

    解:

    \(a_i,b_i\)看作一个物体的两个属性,按\(a_i\)从小到大排序,然后求任取\(j\leq i\)\(b_j\)之和小于\(a_i\)的方案数,其实是一个背包问题

    G

    给定若干区间范围和数字\(s_i\),表示在区间\([l,r]\)内有\(s_i\)个1,用最少的\(1\)构造这个\(01\)序列

    解:

    按区间右端点排序,树状数组统计这段区间内已经有多少个\(1\)了,用并查集找到最靠右的不是\(1\)的位置改成\(1\)

  • 相关阅读:
    智能车回忆
    自动化面试问题
    先进控制理论(转载)
    电力电子技术(转载)
    微型计算机原理及应用复习(转载)
    c语言中数值交换用值传递和地址传递
    unity调用苹果端方法
    unity调用安卓arr方法
    unity mono单例
    loading通用界面笔记
  • 原文地址:https://www.cnblogs.com/knife-rose/p/15742942.html
Copyright © 2011-2022 走看看