zoukankan      html  css  js  c++  java
  • 2013第一场多校

    多校第一场:
    1011 http://acm.hdu.edu.cn/showproblem.php?pid=4610
    (1)、将每个数对应的4种情况求出来,并保存每个数对应的状态。
    (2)、问题转化为:共有16种卡牌,每种卡牌可以选ai个,选了某种卡牌将得到bi的权值。将所有选定的bi进行|运算,若4位中的某一位为0,则需要额外的花费。
    (3)、直接进行2^16的枚举,表示某种物品选还是不选,每个物品至少选一个,然后剩下的物品按权值从大到小贪心。

    1002 http://acm.hdu.edu.cn/showproblem.php?pid=4601
    (1)、将原树映射到一棵字典树上。
    (2)、在原树上进行DFS,求出每个节点属于哪一层,并保存dfs的时间戳,保存hash值。
    (3)、将不同层的节点保存到对应的vector中,并按照时间戳排序。
    (4)、求出字典树上每个节点对应的权值。(越小字典序越大)
    (5)、给定祖先节点u与相对长度,按照时间戳可以二分出子孙节点在对应某一深度的vector中的范围。
    (6)、在给定范围内,进行RMQ求出某一节点映射到字典树上的权值最小,找到这一节点,然后通过hash值的运算,得到答案。

    1007 http://acm.hdu.edu.cn/showproblem.php?pid=4606     几何,最小路径覆盖
    (1)、将线段拆成两点,求出包括城市内n+2m个点内,每两点之间是否能够直接相连。若能,则dis[i][j]=caldis(i,j),否则dis[i][j]=Inf;
    (2)、使用floyd预处理每两点之间距离。
    (3)、二分背包的大小。因为城市有占领的先后顺序,所以若两点之间距离小于背包大小,则在两点之间连接一条有向边。最后构出来的图是一个有向无环图,于是可以转化为最小路径覆盖问题。直接用二分匹配作为check,二分背包大小得到答案。

  • 相关阅读:
    linux文件IO操作篇 (二) 缓冲文件
    信号量和互斥锁的区别
    linux 无锁化编程
    C语言中 time相关的函数 头文件
    printf 打印字体和背景带颜色的输出的方法
    在win10环境下安装Cygwin,可以GCC编译
    学习《大话存储》
    linux内核态和用户态的信号量
    学习Makefile
    git 环境搭建
  • 原文地址:https://www.cnblogs.com/CooCoo/p/3235181.html
Copyright © 2011-2022 走看看