博客
关于我
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/

    你可能感兴趣的文章
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>
    python可维护性_使用这7大神器,让你的Python 代码更容易于维护
    查看>>
    Python只运行一次while循环
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    Python变量/运算符/函数/模块/string
    查看>>
    python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
    查看>>
    python系列【仅供参考】:python flask框架 debug功能
    查看>>
    python发送notes邮件_使用python在Lotus Notes中发送邮件
    查看>>
    Python双版本下创建一个Scrapy(西瓜皮)项目
    查看>>
    Python双版本下No module named 'requests'
    查看>>
    python及pycharm2018软件安装教程
    查看>>
    python去重txt文本_Python实现的txt文件去重功能示例
    查看>>