zoukankan      html  css  js  c++  java
  • 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实现大文件上传分片上传断点续传
    php实现大文件上传分片上传断点续传
    jsp实现大文件上传分片上传断点续传
    W5500EVB TCP Server演示
    Sublime Text2-Control Package---ShinePans
    HDU 4786 Fibonacci Tree
    Vim经常使用技巧总结2
    atitit.窗口静听esc退出本窗口java swing c# .net php
    CAS原子操作实现无锁及性能分析
    架构师速成6.15-开发框架-单点登录
  • 原文地址:https://www.cnblogs.com/wmrv587/p/6263125.html
Copyright © 2011-2022 走看看