zoukankan      html  css  js  c++  java
  • 模拟45 题解

    A. kill

    显然本题可以二分答案。

    于是问题转化为判断一个距离是否可行。

    将人和怪物分别按位置排序,

    那么每个人选择范围内可以选择的最靠左的怪物,不会使答案更差。

    单调指针扫一遍就可以了。

    B. beauty

    统计每条边儿子方向上的关键点数量,设为$cnt[i]$,

    那么另一个方向上的关键点数量为$2k-cnt[i]$,

    $ans=sum limits_{i=1}^{n-1}min(cnt[i],2k-cnt[i])$

    显然答案不会大于这个值,因为跨过每一条边的路径数不会超过这个答案。

    构造出一个方案是可行的。

    C. weight

    考场上想的是:

    不考虑每一条边,形成一棵最小生成树。

    如果不能形成,则答案为-1。

    否则,答案为加上这条边形成的简单环中,边权最大值-1(不包含这条边)。

    是正确的,然而没有办法维护这棵要求加边/删边的最小生成树。

    正解是类似的:

    先求出最小生成树,

    那么,对于最小生成树上的非树边,答案为加上这条边,形成简单环边权最大值-1,

    对于树边,如果这个权值可以被其它的一些边替换,那么就应该降低权值。

    所以对于每一条非树边,使一条链上的权值对该边的权值取min。

    所以该题是lct模板题,直接码就完了。

  • 相关阅读:
    用表组织数据
    SQL Server 2008创建数据库
    c#字符串常用方法
    属性升级介绍
    c#语法
    初识C#
    CSS动画
    YCSB性能测试工具使用
    高性能的Redis代理TwemProxy
    JVM垃圾回收总结
  • 原文地址:https://www.cnblogs.com/skyh/p/11544064.html
Copyright © 2011-2022 走看看