link

很容易对于每个点列出式子

\(f_{x,y}=(f_{x,y-1}+f_{x,y}+f_{x,y+1}+f_{x+1,y})/4\)(边角转移类似,略)

这个转移是相互依赖的就gg了

不过你可以把这个转移移项,改成右侧没有\(f_{x,y}\)的式子

不过他还是相互依赖的

但是上下两行之间转移不是依赖的

所以你可以每一行跑一遍高斯消元

由于一行的转移是一条链

树上高斯消元可以做到 \(O(n)\) 或 \(O(n \log p)\)(模意义下逆元)

而链上的情况更简单,直接xjb搞一下就行了

具体是将\(f_{x,y-1}\)和\(f_{x,y}\)之间的线性关系搞出来,然后根据\(f_{x,y}\)的式子将\(f_{x,y+1}\)的线性关系也搞出来

最后你会发现\(f_{x,m-1}\)和\(f_{x,m}\)之间搞出了两个线性关系,就可以解出来了

然后你会发现前面的依次带入进去就行了

丑代码

注意特判m=1

#include <cstdio>
using namespace std; const int xkj = 998244353, inv2 = 499122177, inv3 = 332748118;
int n, m, val[1010], x[1010];
int k[1010], b[1010]; int qpow(int x, int y)
{
int res = 1;
for (x %= xkj; y > 0; y >>= 1, x = x * (long long)x % xkj)
if (y & 1) res = res * (long long)x % xkj;
return res;
} void gao()
{
if (m == 1) { val[1] += 2; return; }
k[2] = inv2, b[2] = (val[1] + 3) * (long long)inv2 % xkj;
for (int i = 2; i <= m - 1; i++) //x[i - 1] = k[i] * x[i] + b[i]
{
k[i + 1] = qpow((3 - k[i] + xkj) % xkj, xkj - 2);
b[i + 1] = (val[i] + b[i] + 4) % xkj * (long long)k[i + 1] % xkj;
}
x[m] = (val[m] + b[m] + 3) % xkj * (long long)qpow((2 - k[m] + xkj) % xkj, xkj - 2) % xkj;
for (int i = m - 1; i >= 1; i--) x[i] = (k[i + 1] * (long long)x[i + 1] % xkj + b[i + 1]) % xkj;
for (int i = 1; i <= m; i++) val[i] = x[i];
} int main()
{
int x, y;
scanf("%d%d%d%d", &n, &m, &x, &y); n -= x - 1;
for (int i = 2; i <= n; i++) gao();
printf("%d\n", val[y]);
return 0;
}

迷思:树上高斯消元

我们考虑随便拎出一个度数为1的点开始dfs1这个树,在回溯时得到儿子和父亲之间的线性关系

最后你会得到根节点和根节点的儿子之间的两个线性关系,你就可以得到这两个点的值

然后你再dfs2下去,由于线性关系已经确定就可以根据某个点的父亲的值算出这个点的值了

NOI.AC省选模拟赛第一场 T1 (树上高斯消元)的更多相关文章

  1. [noi.ac省选模拟赛]第11场题解集合

    题目   比赛界面. T1   比较简单.容易想到是求鱼竿的最大独立集.由于题目的鱼竿可以被分割为二分图,就可以想到最大匹配.   尝试建边之后会发现边的数量不小,但联系题目性质会发现对于一条鱼竿,它 ...

  2. [noi.ac省选模拟赛]第12场题解集合

    题目 比赛界面. T1 数据范围明示直接\(O(n^2)\)计算,问题就在如何快速计算. 树上路径统计通常会用到差分方法.这里有两棵树,因此我们可以做"差分套差分",在 A 树上对 ...

  3. [noi.ac省选模拟赛]第10场题解集合

    题目 比赛界面. T1 不难想到,对于一个与\(k\)根棍子连接的轨道,我们可以将它拆分成\(k+1\)个点,表示这条轨道不同的\(k+1\)段. 那么,棍子就成为了点与点之间的边.可以发现,按照棍子 ...

  4. [NOI.AC省选模拟赛3.30] Mas的童年 [二进制乱搞]

    题面 传送门 思路 这题其实蛮好想的......就是我考试的时候zz了,一直没有想到标记过的可以不再标记,总复杂度是$O(n)$ 首先我们求个前缀和,那么$ans_i=max(pre[j]+pre[i ...

  5. [NOI.AC省选模拟赛3.23] 集合 [数学]

    题面 传送门 一句话题意: 给定$n\leq 1e9,k\leq 1e7,T\leq 1e9$ 设全集$U=\lbrace 1,2,3,...n\rbrace $,求$(min_{x\in S}\lb ...

  6. [NOI.AC省选模拟赛3.31] 星辰大海 [半平面交]

    题面 传送门 思路 懒得解释了......也是比较简单的结论 但是自己看到几何就退缩了...... 下周之内写一个计算几何的学习笔记! Code #include<iostream> #i ...

  7. [NOI.AC省选模拟赛3.31] 附耳而至 [平面图+最小割]

    题面 传送门 思路 其实就是很明显的平面图模型. 不咕咕咕的平面图学习笔记 用最左转线求出对偶图的点,以及原图中每个边两侧的点是谁 建立网络流图: 源点连接至每一个对偶图点,权值为这个区域的光明能量 ...

  8. [NOI.AC省选模拟赛3.23] 染色 [点分治+BFS序]

    题面 传送门 重要思想 真的是没想到,我很久以来一直以为总会有应用的$BFS$序,最终居然是以这种方式出现在题目中 笔记:$BFS$序可以用来处理限制点对距离的题目(综合点分树使用) 思路 本题中首先 ...

  9. [noi.ac省选模拟赛20200606]赌怪

    题目   点这里看题目. 分析   先特判掉\(K=2\)的情况.   首先可以考虑到一个简单 DP :   \(f(i)\):前\(i\)张牌的最大贡献.   转移可以\(O(n^2)\)地枚举区间 ...

随机推荐

  1. c++ 备忘录模式(memento)

    备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态[DP].举个简单的例子,我们玩游戏时都会保存进度,所保存的进度以文件的 ...

  2. 钉钉开发笔记(三)MySQL的配置

    最近在编写web的过程中,经常需要与后台工作人员互动.由于比较麻烦.没有效率. 就果断的请教了,公司的后台大牛,学习下数据库的一些简单操作,现在就把利用MySQL连接服务器, 进行可视化操作的简单步骤 ...

  3. RTX二次开发::检索 COM 类工厂中 CLSID 为 {79210E58-99EB-45D0-8890-763EFEAA143F} 的组件失败,

    解决方法: 1.Interop.RTXSAPILib.dll这个是32位的 将IIS 应用程序池 启用32位应用程序 设置为true就可以了, 2.把编译好的程序选择X86平台运行,就好了 程序员的基 ...

  4. servicestack.redis工具类

    using System;using System.Collections.Generic;using System.Linq;using ServiceStack.Redis;using Servi ...

  5. Oracle 用户

    1.关于创建用户; 2.用户配置文件; 3.创建用户; 4.更改用户; 5.删除用户; 1.关于创建用户: 1.1 用户名:创建数据库用户必须具有 Create user 系统权限,必须指定用户名和密 ...

  6. CodeForces 682B Alyona and Mex (题意水题)

    题意:给定一个序列,你可以对这里面的数用小于它的数来代替,最后让你求,改完后的最大的序列中缺少的最小的数. 析:这个题,读了两个多小时也没读懂,要是读懂了,肯定能做出来...没什么可说的,就是尽量凑1 ...

  7. Firefox 43无法安装xpi的问题

    Firefox 43无法安装xpi的问题 说明:Firefox 42将默认禁止安装未签名扩展   强制禁用这个首选项(高级用户): 你可以在 Firefox 配置编辑页面 (about:config ...

  8. A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehicles in GPS-Denied Environments

    A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehi ...

  9. 敏捷软件开发:原则、模式与实践——第11章 DIP:依赖倒置原则

    第11章 DIP:依赖倒置原则 DIP:依赖倒置原则: a.高层模块不应该依赖于低层模块.二者都应该依赖于抽象. b.抽象不应该依赖于细节.细节应该依赖于抽象. 11.1 层次化 下图展示了一个简单的 ...

  10. ACM 韩信点兵 、n的另一种阶乘、6174的问题

    3.6174问题 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得到4321- ...