栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

矩阵树定理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

矩阵树定理

P6178 【模板】Matrix-Tree 定理

模板+1

#include 
#define inf 0x7fffffff
#define ll long long
//#define int long long
//#define double long double
#define re register int
#define void inline void
#define eps 1e-18
//#define mod 1e9+7
//#define ls(p) p<<1
//#define rs(p) p<<1|1
//#define ls(p) e[p].l
//#define rs(p) e[p].r
//#define pi acos(-1.0)
#define pb push_back
#define P pair < int , int >
#define mk make_pair
#define fi first
#define se second
using namespace std;
const int mod=1e9+7;
const int M=1e8+5;
const int N=4e3+5;//?????????? 4e8.
int n,m;
ll a[N][N];
namespace MatrixTree
{
	int power(int a,int b=mod-2)
	{
		int sum=1;
		while(b)
		{
			if(b&1)  sum=1ll*sum*a%mod;
			a=1ll*a*a%mod;
			b>>=1;
		}
		return sum;
	}
	ll det()
	{
		ll ans=1;
		bool tr=0;
		for(re j=1;j>n>>m>>op;
	for(re i=1;i<=m;i++)
	{
		int x,y,z;
		scanf("%d%d%d",&x,&y,&z);
		if(x==n)  x=1;else  if(x==1)  x=n;
		if(y==n)  y=1;else  if(y==1)  y=n;
		if(op==1)
		{
			a[x][y]=(a[x][y]-z+mod)%mod;
			a[y][y]=(a[y][y]+z)%mod;
		}
		else
		{
			a[x][y]=(a[x][y]-z+mod)%mod;
			a[y][y]=(a[y][y]+z)%mod;
			a[y][x]=(a[y][x]-z+mod)%mod;
			a[x][x]=(a[x][x]+z)%mod;
		}
	}
	cout<>T;
    for(int index=1;index<=T;index++)
    {
//        printf("Case #%lld: ",index);
        solve();
//        puts("");
    }
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号