[BZOJ5133][CodePlus2017年12月]白金元首与独舞 题面:www.lydsy.com/JudgeOnline/upload/201712/div1.pdf 题解:由于k很小,考虑用矩阵树定理. 我们先预处理出:从每个已决策点,一直走下去会走到哪个未决策点(我们将最外面看作一个大的未决策点).可以用拓扑排序搞定,若有环则无解. 然后我们枚举每个未决策点的四个方向,看一下一直走下去会走到哪个点,在新图中从这个点到终点连一条边.得到新图的出度矩阵和邻接矩阵,求出|出度矩阵-邻接矩阵…
bzoj luogu 题意 给你一个\(n*m\)的网格,每个位置上有一个箭头指向上或下或左或右.有些位置上还没有箭头,现在要求你在这些没有箭头的位置上填入箭头,使得从网格的任意一个位置开始,都可以沿着箭头走出网格. 求填入的方案数膜\(10^9+7\) sol 给"网格外"建一个点.每个格子向它指向的格子连一条边. 这样会发现一个方案合法当且仅当连出的这\(n*m\)条边构成一棵树. 没有确定的格子可以向四个方向连边.这样直接上矩阵树可以做到\(O((nm)^3)\). 考虑优化.只…
题目描述 给定一个 $n\times m$ 的方格图,每个格子有 ↑.↓.←.→,表示从该格子能够走到相邻的哪个格子.有一些格子是空着的,需要填上四者之一,需要满足:最终的方格图中,从任意一个位置出发都能够走出方格图.求方案数 mod 10^9+7. $数据组数\le 10$ ,$n,m\le 300$ ,$空格子数k\le 200$ 题解 并查集+矩阵树定理 由于k很小,又是计数问题,考虑矩阵树定理. 先使用并查集处理出从每个位置开始,最终会走到哪个位置.显然如果有环则答案为0,否则一定走到的…
[LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞 试题描述 到河北省 见斯大林 / 在月光下 你的背影 / 让我们一起跳舞吧 うそだよ~ 河北省怎么可能有 Stalin. 可是-- 可是如果 Stalin 把自己当作炸弹扔到地堡花园里来了呢? 怀揣着这份小小的希望,元首 Adolf 独自走进了花园.终有一天会重逢的吧,Stalin.或许是在此处,或许是在遥远的彼方. 无论如何,在此之前,好好装点一番花园,编排一段优美的舞步吧! 元首把花园分为 \(n\) 行 \(m\…
BZOJ没有题面,差评 洛谷的题目链接 题解 其实这题很久之前就写了,也想写个题解但是太懒了,咕到了今天 在typora写完题解不想copy过来再改格式了,于是直接贴截图qwq #include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define il inline #define int long long namespace io { #define in(a) a=read() #define out(a…
[题目]给定n行m列的矩阵,每个位置有一个指示方向(上下左右)或没有指示方向(任意选择),要求给未定格(没有指示方向的位置)确定方向,使得从任意一个开始走都可以都出矩阵,求方案数.n,m<=200,k<=300(未定格数量). [算法]生成树计数(矩阵树定理) [题解]先对定向格DFS找环判断是否无解. 然后每个点向指示方向连边,未定格向四周连边,外界作为一个点. 将所有有向边反向后,就是求根为外界的树形图的数量,生成树计数问题用矩阵树定理解决. 复杂度T*O((n*m)^3). 考虑优化,发…
description 题面 data range \[ 1 \leq T \leq 10, 1 \leq n, m \leq 200 , 0 \leq k \leq \min(nm, 300)\] solution 矩阵树定理 求无向图的生成树个数 度数矩阵-邻接矩阵 去掉一行一列求行列式 为了保证精度可以辗转相除 这里是模意义下的 const int mod=998244353; int a[305][305]; il int gauss(int n){ RG int ans=1; for(…
n,m<=200,n*m的方阵,有ULRD表示在这个格子时下一步要走到哪里,有一些待决策的格子用.表示,可以填ULRD任意一个,问有多少种填法使得从每个格子出发都能走出这个方阵,答案取模.保证未确定的格子<=300. ...一脸懵逼地写了原本30实际20的暴力然后跪着啃了下论文 然而什么都没啃懂不如结论记下来: 首先矩阵行列式的定义:一个n*n的矩阵,行列式值为$\sum_{b是n的一个排列} \ \ \ \ \ ( (-1)^{b的逆序对数} \ \ \ \ \ * \prod_{i=1}^…
分析 我们将没连的点连向周围四个点 其余的按照给定的方向连 我们将所有连出去的位置统一连到0点上 再以0作为树根 于是就将问题转化为了有向图内向树计数 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include&l…
\(\mathcal{Description}\)   link.   给定一个 \(n\times m\) 的网格图,一些格子指定了走出该格的方向(上下左右),而有 \(k\) 格可以任意指定走出方向.求指定的方案数,使得从任意格子都可以走出网格图.   \(n,m\le200;k\le300\). \(\mathcal{Solution}\)   令"走出边界"为走到一个特殊点,建图,其中未指定方向的点向四周连边,相当于求以特殊点为根的内向树个数,跑矩阵树定理即可.复杂度 \(\m…