首页 > 其他分享 >si-shi-liu-c

si-shi-liu-c

时间:2024-03-04 20:57:30浏览次数:20  
标签:格子 奇数 空格 liu si 骨牌 shi 考虑 森林

四十六(C)

link

考虑第一问。将地图黑白染色,那么每个骨牌占了一黑一白。

删去一个骨牌会得到两个空格。由题目知道,这两个空格位置一一对应一个状态。

我们只需计数有多少种可能的空格出现的方案。考虑一个骨牌移动,等价于将一个空格从头部前一格移到尾部。

那么建图,每个骨牌的头部前一格连向尾部一格,单向边。

如上图,黑色格子是骨牌,两个方向各一条单向边。

现在空格可以沿着这些单向边移动。注意到边连的两个点是同色的,那么我们就得到了黑白两片森林。

为什么是森林?首先发现这个图每个点入度 \(\le1\),因此至少是一个外向基环树森林。

考虑如果存在一个环,在网格图中画出这个环围成的封闭图形。会发现,除去边界围住的网格数量是奇数个。

原因考虑扫描线从上往下扫,由于从左边界到右边界只能每次 \(+2\),每一层的内部格子数一定都是奇数。

同理层数只有奇数层,那么内部格子数就是奇数个。由于第一问没有障碍,在这个环内部不能铺满骨牌,矛盾。

所以就得到了两片森林 \(F_1,F_2\),问题变成,每次给两个分别在 \(F_1,F_2\) 中的点 \(u,v\),

则满足 \(u'\in \text{subtree}^{(F_1)}_u,v'\in \text{subtree}^{(F_2)}_v\) 的 \((u',v')\) 都是合法点对,求一共有多少合法点对。

显然直接扫描线求矩形并面积即可。

考虑第二问,现在变成了基环树森林。考虑竖着连的边令其边权为 \(y\),横着的为 \(x\),则一个局面的权值为初始局面到它的距离。

题目即要求,\(u\) 到所有能到的点的距离之和。直接预处理即可,有点难写:(

复杂度 \(\Theta(nm\log(nm))\)。

标签:格子,奇数,空格,liu,si,骨牌,shi,考虑,森林
From: https://www.cnblogs.com/iorit/p/18052666

相关文章

  • vite+vue3 遇到报错 Uncaught SyntaxError: Cannot use import statement outside a m
    按照报错找到了对应的位置import{createApp}from'/node_modules/.vite/deps/vue.js?v=d0a669cf'importAppfrom'/src/pages/project1/App.vue'//import'./index.css'//importrouterfrom"./router"//createApp(App).mount(&#......
  • 2024 ICPC Asia Pacific Championship-K-线段树合并or主席树
    比赛链接:https://codeforces.com/contest/1938给一棵有根树,执行以下代码:letLbeanemptyarrayforx=1ton fory=1ton append((x-1)*n*n+(LCA(x,y)-1)*n+(y-1))toLsortLinnon-decreasingorder然后进行\(q\)次询问,每次问\(L\)中第......
  • BOSHIDA DC电源模块的工作原理及应用
    BOSHIDADC电源模块的工作原理及应用DC电源模块是一种常见的电子元件,它具有将交流电转换为直流电的功能。在很多电子设备中,尤其是需要稳定的直流电源供应的设备中,DC电源模块被广泛应用。 DC电源模块的工作原理可以简单描述如下:将输入的交流电转换为直流电。首先,交流电输入到......
  • 关于SAP-APP机器-R3trans -d报错-R3trans: /lib64/libstdc++.so.6: version `GLIBCXX_
    在SAP-应用-APP-机器上执行如下命令报错awpxxx03:prdadm270>R3trans-dR3trans:/lib64/libstdc++.so.6:version`GLIBCXX_3.4.26'notfound(requiredbyR3trans) 其实之前,使用过一种方法解决这个问题,可以参考笔者另一篇文章《关于Redhat-Linux中-compat-sap-c++的说......
  • Jitsi Meet 是一组开源项目,使用户能够使用和部署具有最先进视频质量和功能的视频会议
    JitsiMeet是一组开源项目,使用户能够使用和部署具有最先进视频质量和功能的视频会议平台。 为了在运行Docker和DockerCompose的机器上快速运行JitsiMeet,请执行以下步骤:下载并解压缩最新版本。不要克隆git仓库。如果您对运行测试映像感兴趣,请参阅下文:wget$(curl-sht......
  • 肖SIR__数据库之安装navicat__11.3
    一、安装navicat1、下载navicat 2、解压压缩包 3、点击exe文件 4、输入密钥:NAVH-WK6A-DMVK-DKW35、点击打开:输入连接参数: 6、查看连接好仓库 ......
  • Javascript Object 中,isExtensible/isSealed/isFrozen 的对比
    目录isExtensibleisSealedisFrozen示意图isExtensibleextensibleobject的定义:theycanhavenewpropertiesaddedtothem,andtheir[[Prototype]]canbere-assigned.Anobjectcanbemarkedasnon-extensibleusingoneofObject.preventExtensions(),Object.seal......
  • JSON.parse解析字符串报错-SyntaxError: Unexpected token ‘ in JSON at position 报
    “SyntaxError:Unexpectedtoken’inJSONatposition”报错原因是因为解析的字符串对象中,JSON.parse无法识别;JSON.parse可以将标准的json类型数据转换为JavaScript对象,如果数据不是正确的json类型的数据则会控制台报错,可能会阻断代码的正常运行我们可以写一个函数来......
  • Simapps分享仿真计算结果
    Simapps作为一个工业app商店,为用户提供了海量仿真app的集中展示、交易和云计算服务。如果你希望在Simapps上分享你的仿真计算结果,你可以按照以下步骤进行:创建账户并登录:首先,你需要在Simapps上创建一个账户并登录。这可以通过访问Simapps的官方网站或使用其移动应用来完成......
  • Vision Transformers的注意力层概念解释和代码实现
    2017年推出《AttentionisAllYouNeed》以来,transformers已经成为自然语言处理(NLP)的最新技术。2021年,《AnImageisWorth16x16Words》,成功地将transformers用于计算机视觉任务。从那时起,许多基于transformers的计算机视觉体系结构被提出。本文将深入探讨注意力层在计算......