首页 > 其他分享 >[AGC003F] Fraction of Fractal

[AGC003F] Fraction of Fractal

时间:2024-09-13 22:24:13浏览次数:9  
标签:连通 联通 end 网格 AGC003F pmatrix Fraction 对数 Fractal

题意

给定一个由黑白组成的网格。

保证黑子四联通。

规定一次操作为使用最初的网格图替换当前网格图的所有黑色格子。

操作 \(k\) 次。

问最终有多少个黑色连通块,对 \(10 ^ 9 + 7\) 取模。

\(k \le 10 ^ {18}\)。

Sol

先不难注意到这个东西只和原网格图是否左右联通和上下联通有关。

注意到若左右上下都联通,那么最终只有一个连通块,若都不联通,那么最终的连通块数为 \(cnt ^ {k - 1}\)。

考虑只有左右或者只有上下联通的情况。

不难想到那个很 \(trivial\) 的结论,即 连通块数 = 点数 - 边数。

考虑进行的最后一次替换操作,那么显然 连通块数 即为 点数 减去 图中左右黑色点相邻的对数。

设点数为 \(a\),黑色点相邻对数为 \(b\),最初的图的黑色点相邻对数为 \(c\),最初的图的左右联通相邻对数为 \(d\)。

不难发现:\(b' = a \times c + b \times d\)。

不妨构造矩阵:

\[\begin{pmatrix} a & b \end{pmatrix} \times \begin{pmatrix} c \cr d \end{pmatrix} \]

注意到因为每次都是乘一个原始矩阵,因此 \(b\) 和 \(c\) 直接合并不管就行了。

因此答案为:

\[\begin{pmatrix} a & b \cr 0 & d \end{pmatrix} ^ {k - 1} \]

复杂度 \(O(\log k)\)。

标签:连通,联通,end,网格,AGC003F,pmatrix,Fraction,对数,Fractal
From: https://www.cnblogs.com/cxqghzj/p/18413008

相关文章

  • Robin-Stocks Python 中的 order_buy_fractional_by_price 问题
    我在Robin-StocksPython包中的order_buy_fractional_by_price函数中遇到问题。在正常市场交易时间内下达以美元为基础的买入订单时,该订单被错误地设置为限价订单。对我来说看起来有问题的代码似乎是导致此问题的原因。我尝试在包管理器中本地修改或删除有问题的代码,但遇......
  • Mathematica Partial Fraction Decomposition
    遇到的问题Mathematica中有一个自带的部分分式分解函数Apart。In:=Apart[(-3+x)/((-1+x)(1+x))]Out:=-(1/(-1+x))+2/(1+x)但是Apart遇到分解结果中带无理数的就会摆烂:In:=Apart[x/(1-x-x^2)]Out:=-(x/(-1+x+x^2))解决方案1我们有一个......
  • 挑战程序设计竞赛 2.6章习题 POJ 1930 Dead Fraction
    https://vjudge.csgrandeur.cn/problem/POJ-1930迈克在最后一刻拼命地赶着完成他的论文。在接下来的3天里,他需要将所有的研究笔记整理成较为连贯的形式。不幸的是,他注意到他在计算方面非常粗心。每当他需要进行算术运算时,他只是将其输入计算器,并将他认为相关的答案写下来。每当......
  • A DATETIME or TIMESTAMP value can include a trailing fractional seconds part in
    MySQL::MySQL8.0ReferenceManual::13.2.2TheDATE,DATETIME,andTIMESTAMPTypeshttps://dev.mysql.com/doc/refman/8.0/en/datetime.html13.2.2 TheDATE,DATETIME,andTIMESTAMPTypesThe DATE, DATETIME,and TIMESTAMP typesarerelated.Thisse......
  • P6466 分散层叠算法(Fractional Cascading) 题解
    题目链接:分散层叠算法比较妙的东西,在很多涉及到若干个有序块的\(kth\)查询的ynoi题中都有妙用。这里简单提提。两种暴力解法在其他文章已有涉及,在此不再赘述。讲讲具有该怎么写这个算法,首先我们需要预处理出新的\(k\)个序列,不妨记每个为\(M_i\)。\(M_{n}=L_n\),其中\(L\)......
  • C++编程练习||实现分数类Fraction1、实现分数的+,-,*,/ 2、逻辑运算==、!=、<、<=、>、>
    题目:实现分数类Fraction  classFraction{   intnumerator,denominator;   public:   ....  };  要求:1、实现分数的+,-,*,/2、逻辑运算==、!=、<、<=、>、>=6种运输符号。3、实现输出<<,输入 >>操作符重载。  样例1输入:   12 ......
  • CodeForces 1924C Fractal Origami
    洛谷传送门CF传送门对这种题一点办法都没有。。。可以手动折叠发现\(n=3\)时\(M=2+2\sqrt{2},V=2+4\sqrt{2}\)。于是大胆猜结论,第二次折叠开始,每次产生的山谷和山峰的长度相等。为什么呢?考虑从第二次折叠开始,设当前纸的层数为\(k\)(事实上若当前是第\(i\)......
  • LOEUF (the loss-of-function observed/expected upper bound fraction) 和 pLI (prob
    LOEUF(theloss-of-functionobserved/expectedupperboundfraction):LOEUFisaconservativeestimateofevolutionaryselectionagainstdisease-causingvariantsbasedontheupperlimitoftheconfidenceintervalfortheobserved/expectedpLoFmutationra......
  • CF743C Vladik and fractions
    大胆拆开,变成两个\(\frac{1}{n}\),令\(z=n\),那么\(\frac{1}{x}+\frac{1}{y}=\frac{x+y}{xy}=\frac{1}{n}\)。注意到分母是乘积,分子是和,可以令\(x,y\)的单位为\(n\)。设\(x=kn\),那么\(x+y=\frac{xy}{n}\),\(kn^2+yn=kny\),\(kn+y=ky\),\(y=\frac{kn}{k-1}\)。取\(k=n+1\......
  • [AGC003F] Fraction of Fractal 题解
    一道很好的矩阵题,可以尝试作为矩阵转移的优质练习题。思路考虑由于黑点在原图中处于联通的状态。分三种情况讨论。上下左右联通。考虑这种情况下,不断分形后。最终产生的依然是一整个的大连通块。故,答案为一。上下左右都不连通。那么每一次分形后就会产生黑色点个连通......