zoukankan      html  css  js  c++  java
  • Codeforces Round #683 (Div. 1, by Meet IT)/Codeforces1446 ABC

    AC代码

    A. Knapsack

    猜结论:给所有的物品按重量降序排序。然后枚举物品,如果拿了这个物品后会超重,那么就不拿。否则就拿。

    如果拿了一个物品后,重量符合了条件,就返回输出答案。

    B. Catching Cheaters

    观察1:如果为了使LCS增加1,而多用超过2个字符,这样其实是亏本的。

    观察2:如果使用正好2个字符,这样其实不赚。

    根据观察,就可以有一个(O(n^2))动态规划的方法。大概就是(dp{i, j})可以只从(dp_{i - 1, j})(dp_{i, j - 1})(dp_{i-1,j-1})转移得到。

    我比赛的时候只用了观察1写,多写了好多转移,浪费了很多时间,其实可以结合观察2再简化。

    C. Xor Tree

    将所有元素都插入01字典树,高位靠近树根。这个时候有:同一颗子树内的两个叶子节点异或值会更小。

    所以,如果一个节点的左子树和右子树都包含超过1个节点,那么左子树和右子树里的点就会内部消化,形成两棵树。

    反之,就只会形成1棵树。

    所以,当存在上述节点时,贪心地把包含点数少的子树删成只有一个节点,这样就可以使最后保留的节点尽可能地多。

  • 相关阅读:
    CodeSmith功能和技巧收集
    简繁转换js兼容各种浏览器
    40 个轻量级 JavaScript 库
    AJAX处理Session
    对项目管理的几点认识(转)
    extjs
    数据采集需要的方法
    JavaScript 浮动定位提示效果
    一个类别表设计
    ExtJS 源码剖析 —— Ext类
  • 原文地址:https://www.cnblogs.com/zengzk/p/13983222.html
Copyright © 2011-2022 走看看