博客
关于我
Atcoder训练实录
阅读量:104 次
发布时间:2019-02-26

本文共 1407 字,大约阅读时间需要 4 分钟。

ARC093-E - Bichrome Spanning Tree

这个问题看起来不算太难,但自己还是会觉得做不出来。题目要求构造一个同时包含黑边和白边的MST(最小生成树)。首先,回顾一下MST的基本知识,原图的MST是由M、S、T组成的,边权和为S。接下来,需要对每条不在当前MST中的边进行分析,计算其权重减去可以替换掉MST中最大边权的值。

分类讨论如下:

  • 当S > X时,无解

    • 设eq为所有num[i]等于X-S的数量,up为所有num[i]大于X-S的数量。当S > X时,eq和up的值会导致无解。
  • 当S = X时

    • 这时有两种操作:
      • 第一种操作:直接将MST替换为包含X的新图。
      • 第二种操作:构建一个新的MST,使其满足特定条件。具体计算公式为:[(2n - 1 - 2) \times 2^m - n + 1]这里去除了全为黑或白的边。
  • 当S < X时

    • 贡献值由第二种操作决定,具体计算公式为:[2 \times (2^{eq} - 1) \times 2^{up}]
  • ARC095-F - Permutation Tree

    这个问题需要分析构造的树的性质。通过从小到大枚举数的方法,每个数i的位置记为mx。每个i首先与当前最右的点mx连边,然后与i所在位置取最大值max。这种方法构造的是一个链状结构,每个点在链上挂有一些子点。

    构造的树实际上是一条链,链上每个点挂有若干点。通过分析链上的点数量cnt[i],可以发现树的构造方法是从小到大依次挂点,且每次挂的位置是当前最大点的右侧。这样构造出的树的特点是链状结构,且每个点的编号按照字典序递增。

    当枚举到链上的第lst个点时,需要为每个点分配编号。分配方式是将当前最右的点mx与i连边,然后将mx与i的位置取最大值max作为新的最右点。这样可以确保树的构造是字典序最小的。

    ARC095-E - Symmetric Grid

    这个问题需要考虑行和列的匹配。通过枚举行的匹配行和列的匹配列,可以利用列的逆序来判断是否满足条件。具体来说,枚举每行的匹配行与每列的匹配列,判断某列的逆序是否与另一列同构。

    通过对行和列的匹配方式进行分析,可以发现状态数较少,从而简化问题。通过枚举行的匹配行和列的匹配列,可以快速判断是否满足条件。

    ARC096-F - Sweet Alchemy

    这个问题需要考虑每个物品的选择次数。每个物品有不同的选择次数,且每次选择会增加一棵子树。通过分析物品的选择次数,可以发现以1为根的子树可以无限选,而其他子树只能选有限次数。

    通过贪心算法,可以选择每个物品取min(n, D)个,剩余的用贪心贡献。贪心策略的核心是每次选择贡献值最大的物品,这样可以确保最终结果的优化。

    ARC096-E - Everything on It

    这个问题需要使用容斥原理来计算非法选择的方案数。通过设f[i]为至少有i个非法选择的方案数,可以得到一个复杂的求和式。通过对式子的展开和化简,可以发现它实际上是在计算不包含非法选择的方案数。

    通过对式子的展开,可以发现它涉及斯特林数和其他组合数学的概念。最终,通过对式子的化简,可以得到一个与n^3logn相关的复杂度。

    总结

    通过对上述问题的分析,可以发现它们都需要结合不同的数学概念和算法技巧来解决。从MST的构造到树的构造,再到容斥原理的应用,每个问题都需要深入的思考和细致的分析。

    转载地址:http://wrmu.baihongyu.com/

    你可能感兴趣的文章
    PHP消息队列的实现方式与详解,值得一看
    查看>>
    PHP混合Go协程并发
    查看>>
    php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
    查看>>
    PHP源码安装后如何新增模块
    查看>>
    php源码详细安装步骤,linux下php源码安装步骤
    查看>>
    php漏洞tips
    查看>>
    php版Zencoding之 phpstorm
    查看>>
    PHP版本升级5.4手记
    查看>>
    php版本微信公众号开发
    查看>>
    php生成html文件的多种方法介绍
    查看>>
    php生成二维码到图片上
    查看>>
    php生成二维码并下载图片(适应于框架)
    查看>>
    PHP生成及获取JSON文件的方法
    查看>>
    PHP生成唯一不重复的编号
    查看>>
    PHP的json_encode函数应用到微信接口问题(include \uxxxx will create fail)
    查看>>
    php的几种运行模式CLI、CGI、FastCGI、mod_php
    查看>>
    php的四大特性八大优势
    查看>>
    PHP的威胁函数与PHP代码审计实战
    查看>>
    PHP索引数组unset的坑-array_values解决方案
    查看>>
    PHP索引数组排序方法整理(冒泡、选择、插入、快速)
    查看>>