zoukankan      html  css  js  c++  java
  • CF 1368G Shifting Dominoes

    题意

    题意:
    (n imes m)的方格,用多米诺骨牌填满了,可以进行以下操作:
    拿走一个骨牌
    移动其他骨牌,但其他骨牌最终的位置必须至少与一个初始位置重合
    问能构成多少个本质不同的图,两个图不同当且仅当两个空格中的某个空格所在位置不同

    做法

    将一个多米诺骨牌描述成一对二元组
    若存在((a,b)(a,b+1)),考虑左移一位,相当于空格右移两位:((a,b-1)longrightarrow (a,b+1));右移一位同理:((a,b+2)longrightarrow (a,b))
    对于((a,b)(a+1,b))同理

    结论1:不存在环

    证明:
    若存在环,我们能证明环内部(不包括边界)点数为奇数,即内部不可能填满,故不合法
    考虑将环补成矩形,具体的,反复将凹进去的部分补成凸的,显然这样不会改变矩形内点数的奇偶性
    在补好矩阵后,容易得到矩阵的边长均为奇数,由于边界点数为偶数,故内部点数为奇数

    结论2:图为外向森林

    证明:
    由连边方式决定,每个点至多有一个入边

    结论3:相邻两个点所在弱连通图不同

    证明:
    同一弱连通图,点横坐标与纵坐标之和奇偶性相同

    将图黑白染色
    我们考虑能否释放((a_1,b_1)(a_2,b_2)),显然这两个所处的位置颜色不同,充要条件为这两个点至根有交(以多米诺骨牌作为标号)

    若我们释放了两个同一骨牌的点,可以归入一开始直接把这个骨牌拿走的情况

    问题转化为经典的矩阵并(参考IOI2018狼人)

  • 相关阅读:
    CVTE前端一面
    转载几篇看过的几篇使用技术博文
    Vue自定义指令
    node项目初始化的一些配置
    vue+element 实现在表格内插入其他组件,每行数据独立存储
    jquery如何实现当页面下拉到一定位置时,右下角出现回到顶部图标
    css实现垂直居中的方法整理
    css3兼容性检测工具
    css变换与动画详解
    手机访问电脑端网站偏问题解决
  • 原文地址:https://www.cnblogs.com/Grice/p/13606506.html
Copyright © 2011-2022 走看看