• Codeforces Round #387(div 2)


    A

    =w=

    B

    VOV

    C

    QoQ

    D

    题意:贝尔兰冬天很冷,那么司机要换上冬天专用轮胎才能开车。假设冬天一共有n天,有一套冬天专用轮胎,仅能使用k天,这套轮胎不管什么温度都能用,而夏天用的轮胎只能在温度非负的日子里使用,问要平安开n天的车最少需要换几次轮胎(穿上和脱下都算)

    分析:贪心

      贪心想法很好得出,按照连续夏天的长度来排序,小的先来填

      但要注意头尾两段

      如果填补开头一段夏天,不能使结果最优,所以开头认为放在区间数组的最后

      至于最后一段夏天,有一点很尴尬,也就是别的区间如果填满,对结果的贡献是-2,而最后个区间贡献是-1,这就涉及到价值和花费问题,所以有两种可能,一种是将最后的区间放入前面区间排序,一种是将最后的区间放在倒数第二个(倒数第一个是第一个区间),比较两种情况的最小值输出

      以一种奇葩的姿势A了这题,期待有比较正统的贪心

    E

    题意:给出一种树的构造方式,让你按照深度将树输出

    分析:模拟

      就是模拟建树就行了,类似于对中缀表达式进行操作

    F

    题意:输入一个k和一个t(k<=2e9,t<=10),要求输出第k小的满足要求的16进制数,满足的要求是该16进制数各个位上的数出现次数<=t

    分析:数位DP

      明显的数位DP

      不断枚举位数len,dp出位数为len时候有多少个满足的数,然后就能确定该数的位数,输出时候从高位开始填,确定是哪个数

      具体的dp:f[i][j]表示前i个数字,将长度为len的位置已经填了j个(0可以为首位)的方案数

      f[i][j]=Σf[i-1][j-k]*c(len-j+k,k) 其中每个数字都有num[i]表示每个数字最多使用个数(刚开始都是t),这样做是因为要枚举最高位,所以就导致有一个数能用的个数会少一个

      注意:1、写数位DP过程的时候一定不要考虑首位是不是0的情况,因为输出的时候绝对需要枚举最高位

         2、用long long

  • 相关阅读:
    JS浅拷贝和深拷贝
    使用阿里云短信服务
    autojs相关的文档地址记录和简单使用
    Linux 根目录所在分区被脏数据占满
    openstack宿主机故障,虚拟实例恢复
    openstack创建vlan网络并配置网络设备
    联想 lenove 3750 M4服务器更改启动项和管理口IP
    ansible常用方法
    Mysql数据库-多实例主从复制-主从故障详解
    Linux 系统优化-workstation实践
  • 原文地址:https://www.cnblogs.com/wmrv587/p/6263125.html
Copyright © 2020-2023  润新知