zoukankan      html  css  js  c++  java
  • 考前codeforces泛做

    100851 A H K
    100837 A G
    100796 D
    100783 E A
    100753 D J K
    100200 E G H
    100202 A C
    100726 B C
    100651 B F
    100641 A C D F
    100644 C G
    100197 C

    557E
    225C
    526E
    19B
    526E

    CERC 07 Gates of Logic

    ----------DP----------

    543A 100431F
    106C 100417H
    148E 100365F
    225C 100365H

    100923 B G F

    449A 569D 643F

    ------日常模拟------
    416D 19B
    669 B C D E
    100851 F B C

    -----其它糊做-----
    724D 731 D E F

    19B
    题意:给(n)个物品,每个物品有两个权值(t_i)(p_i),分别表示选了此物品后可以延长(t_i)的时间;选此物品需要花费(p_i)。选一件物品需要用1单位时间。问选完(n)件物品的最小花费。
    sol:一句话题意以后就不那么隐蔽的背包问题。设(d[i][j])表示选完前(i)件物品,还剩(j)单位时间的最小花费。显然有$$d[i][j] = min{d[i-1][j], d[i-1][j-t_i-1] + c[i]}$$滚不滚动都无所谓咯。

    724D
    链接:http://codeforces.com/contest/724/problem/D
    sol:原本的想法是按字典序依次考虑每个字符。然而这样就需要维护每个字符的占用情况,比较麻烦。注意到如果我们需要选字符(x)且需要选大于(x)的字符,则所有(x)都要选上。这样才能保证字典序最小。于是我们从左到右考虑每(m)个字符。在这(m)个字符中选出最小的字符中最靠后的那个(喷泉贪心),然后把指针变成这个字符的位置+1,下一轮就考虑从这个位置往后的(m)个字符即可。输出时,小于最大所选字符的要全选;最大所选字符只需选必须选的。

  • 相关阅读:
    容器与线程--更新
    js生成元素的事件不执行问题
    Webpack 笔记
    思考题——爬楼梯
    正则表达式笔记
    github + travis 自动构建 vue 项目到 gitpage
    css3 动画 vs js 动画
    深度哲学对工作的启发
    yml 文件操作方法
    布尔变量在项目中的应用
  • 原文地址:https://www.cnblogs.com/yearwhk/p/5968199.html
Copyright © 2011-2022 走看看