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,二分背包大小得到答案。

  • 相关阅读:
    Java代理(jdk静态代理、动态代理和cglib动态代理)
    Hive安装
    Spark 集群安装
    Flume 远程写HDFS
    Spark Idea Maven 开发环境搭建
    oracle 通不过网络的原因
    oracle一些基本问题
    linux-redhat配置yum源
    liunx虚拟机网络连接
    redhat安装jdk、tomcat、mysql
  • 原文地址:https://www.cnblogs.com/CooCoo/p/3235181.html
Copyright © 2011-2022 走看看