• 省选模拟83 题解


    A. table

    首先考虑怎么暴力 dp,然后发现难点在于怎么知道不受影响的格点的个数。

    其实特殊之处在于碰到矩形边界之后没办法计数,所以考虑枚举在哪个位置碰到了矩形边界。

    然后发现每次转移是类似的,只要求 $a$ 次向下走,$b$ 次向右走,$c$ 次在边界上走能贡献的总的权值。

    其实等价于求所有满足 $x_1+...+x_a+y_1+...+y_b+z_1+...+z_c=S$ 的序列的权值 $x_1*...*x_a*(y_1+1)*...*(y_b+1)$ 的权值和。

    其中 $x,y,z$ 的取值都可以是 $0$ ,然而容易发现如果 $x$ 在取值为 $0$ 的时候不产生贡献,可以钦定取值至少为 $1$ 。

    然后把 $y+1$ 这个东西转化一下,给等号的右边加上一个 $b$ ,现在的权值就变成了 $x_1*...*x_{a+b}$,这个可以直接用插板来计算。

    然后发现其实是左右分别插板,然后组合数的形式是 $sum limits_{i=-infty}^{infty}inom{a+i}{b}inom{c-i}{d}$。

    这个东西可以转化为在枚举集合的划分点,所以组合数就等于 $inom{a+c+1}{b+d+1}$,然后只要考虑一下没有被经过的点的贡献、经过的不同路径产生的方案数的贡献就好了。

    B. remove

    直接用完全图的话,没有办法进行 dp。

    然后有这样一个结论:原题等价于求最大独立集。

    证明的话可以考虑首先答案是要大于等于最大独立集的。

    然后把最大独立集中的每一个元素都先选中,可以考虑如果加入两个不在最大独立集中的元素之后不能形成团,那就说明新加的两个元素之间没有边。

    如果这样的话,可以用这新加的两个元素替换原最大独立集中的元素,那么最大独立集可以扩大,就不是最大独立集。

    可以考虑把每个符卡都按照左上角的坐标排序,然后最大独立集是不难 dp 的。

    转移的条件就是两个右端点分别小于两个左端点。

    因为上方的左端点是递增的,可以用堆来动态插入可以进行转移的点。

    下方的偏序关系用树状数组维护即可。

    C. road

  • 相关阅读:
    一个apache安装后无法启动的原因分析
    数字的一点考虑
    [转]bat方式上删除注册表键,项
    题解 P2016 【战略游戏】
    题解 P1403 【[AHOI2005]约数研究】
    题解 P1317 【低洼地】
    2020面向对象程序设计寒假作业3 设计思想
    题解 P1829 【[国家集训队]Crash的数字表格 / JZPTAB】
    题解 P1082 【同余方程】
    Unity3D读取外部Text
  • 原文地址:https://www.cnblogs.com/skyh/p/12803271.html
Copyright © 2020-2023  润新知