1. 程式人生 > >洛谷P4455,[CQOI2018]社交網路,Matrix-Tree有向圖造樹

洛谷P4455,[CQOI2018]社交網路,Matrix-Tree有向圖造樹

正題

      這題相對於上一題,多出一個東西,就是“有向”,其實不用慌張,要求的就是一個外向樹(內向樹)罷了。

      這題你可以按照它畫的那樣,把他當作外向樹來看。

      所以我們先需要將邊反過來,求有向圖構外向樹,那麼G[i][i]就存i的入度,G[i][j]存i到j是否有這條邊(-1/0).

      刪掉跟所在的行和列,再求行列式即可。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;

int n,m;
int d[260][260];
const int Mod=1e4+7;

int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=m;i++){
		int x,y;
		scanf("%d %d",&x,&y);
		swap(x,y);
		d[y][y]++;d[x][y]--;
	}
	for(int i=2;i<=n;i++)
		for(int j=2;j<=n;j++)
			d[i][j]=(d[i][j]+Mod)%Mod;
	int ans=1;
	for(int j=2;j<=n;j++){
		for(int i=j+1;i<=n;i++)
			while(d[i][j]){
				int temp=d[j][j]/d[i][j];
				for(int k=j;k<=n;k++)
					d[j][k]=(d[j][k]-d[i][k]*temp%Mod+Mod)%Mod,swap(d[j][k],d[i][k]);
				ans*=-1;
			}
		ans=(ans*d[j][j])%Mod;
	}
	printf("%d",(ans+Mod)%Mod);
}

相關推薦

P4455[CQOI2018]社交網路Matrix-Tree

正題       這題相對於上一題,多出一個東西,就是“有向”,其實不用慌張,要求的就是一個外向樹(內向樹)罷了。       這題你可以按照它畫的那樣,把他當作外向樹來看。       所以我們

2018.10.28【CQOI2018】【P4455】【BZOJ5297】社交網路矩陣

洛谷傳送門 解析: 其實KirchoffKirchoffKirchoff的無向圖矩陣本來就是有向圖矩陣的一個擴充套件。所以這裡僅將有向圖的KirchoffKirchoffKirchoff矩陣作一個簡單的闡述,詳細證明請參考其他dalaodalaodalao的

4455 [CQOI2018]社交網路 (矩陣定理)(學習筆記)

sro_ptx_orz qwq算是一個套路的記錄 對於一個有向圖來說 如果你要求一個外向生成樹的話,那麼如果存在一個 u →

P2047||bzoj1491 [NOI2007]社交網路

https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可以用floyed做掉 1 #include<cstdio> 2

貪心 P2870 [USACO07DEC]最佳牛線黃金Best Cow Line, Gold

勿噴 bsp bool lines nis origin ble 代碼 letter [USACO07DEC]最佳牛線,黃金Best Cow Line, Gold 題目描述 FJ is about to take his N (1 ≤ N ≤ 30,000) cows to

P2294 [HNOI2005]狡猾的商人 神奇做法——貪心

mat n) void noi 帶權並查集 新的 include font target                       HNOI2005狡猾的商人,洛谷鏈接 原題入口   看到大牛都是寫的差分約束或帶權並查集,本蒟蒻都不太會(還是用差分約束過了的QA

P1246編碼問題-排列組合分類討論

知識 names 合數 .... ostream 排列 大小 post new 編碼問題 題意就是a,b,c.....ab.....編碼,給你一個字符串,輸出這是第幾個; 這裏可以用暴力枚舉,但也可以用組合數學的高超知識; 既然這樣我就說一下排列組合的方法,如果要弄一個

P3919 【模板】可持久化數組(可持久化線段/平衡)-可持久化線段(單點更新單點查詢)

map sse 依次 數據規模 操作 str tps () 發現 P3919 【模板】可持久化數組(可持久化線段樹/平衡樹) 題目背景 UPDATE : 最後一個點時間空間已經放大 標題即題意 有了可持久化數組,便可以實現很多衍生的可持久化功能(例如:可持久化並查集

P1498南蠻圖騰(找規律輸出圖形題技巧)

    這題還是很有意思的,關鍵有三點: 1.觀察規律力強,能觀察到基礎圖形寬和高的規律。 2.要能倒著儲存基礎圖形(到這就完成一半了)。 3.能根據寬和高不斷複製基礎圖形   另外要注意並且能發現到: 這題你只能倒著操作,倒著存倒著輸出。 因為要加寬加高,正著

P4455 [CQOI2018]社交網路

傳送門 沒想到連有向圖都有矩陣樹……本來還以為是大力容斥…… 有向圖的矩陣樹改一下矩陣的構造,\(G[i][i]\)為點\(i\)的入度,\(G[i][j]\)表示\((i,j)\)之間的邊數的相反數,然後求出\((1,1)\)的代數餘子式就好了 今天才知道原來模意義下不一定要輾轉相除……逆元就行了……而且

4366——最短路(dijkstra思維異或)

tor 分享 fontsize tdi font %d mar fin space 題目大意 給定一個n個點,m條邊的圖,每條邊有邊權,而每個點\(i\)也可以直接到達\(j\),代價是\(i\ xor\ j\),給定一個S和T,求S到T的最小代價 其中\(n\le1000

LCT模板(學習筆記)(3690)(加邊刪邊修改點權)

題目連結 最近學習了一波LCT qwq 強勢安利Flashhu的部落格!!!!! 真的特別詳細(可惜我不會弄連結) 如果有想要學習\(LCT\)的同學,可以直接看他的部落格 我這裡就簡單寫一點自己的體會啊。 \(LCT\)大致上就是一個支援加邊,刪邊,維護子樹資訊,路徑修改,維護路徑資訊的一個數據結構 本質

Mastodon 2.7.0 RC1 釋出開源社交網路伺服器

   Mastodon 是一個免費的開源社交網路程式,一個商業平臺的替代方案,避免了單個公司壟斷你溝通的風險。選擇你信任的伺服器,無論選擇的是哪個,你都可以與其他人進行互動。任何人都可以執行自己的 Mastodon 例項,並無縫地參與到社交網路中。 2.7.0 R

P5162 WD與積木 [DPNTT]

n) pair read -s second clas online rst pro 傳送門 題解 真是非常套路的一道題…… 考慮\(DP\):設\(f_n\)為\(n\)個積木能搭出的方案數,\(g_n\)為所有方案的高度之和。 容易得到轉移方程: \[ \begin{

P2765 魔術球問題 網路流之最小路徑覆蓋

P2756P2756 思路:k根柱子相當於k條路徑覆蓋,求最多能放n個球的n的大小。 根據每個球相鄰球必須相加為平方數可以建邊,然後由: 最小路徑覆蓋 = n - 最大二分匹配, 可以列舉n,也可以二分

P4016 負載平衡問題 網路流之最大流最小費用流

P4016 思路: 因為是每個倉庫貨物相等,那麼最後肯定是總和/個數(平均值ave)。 建圖: 源點s,匯點t。 如果i倉庫貨物大於平均值,那麼表示需要流出,所以: i -> t 流量為a[i]

P4175: bzoj 1146: [CTSC2008]網路管理

令人抓狂的整體二分題。根本原因還是我太菜了。 在學校寫了一個下午寫得頭暈,回家裡重寫了一遍,一個小時就寫完了……不過還是太慢。 題目傳送門:洛谷P4175。 題意簡述: 一棵 \(n\) 個結點的樹,每個點有點權。 有 \(m\) 次操作,每個操作要麼是更改單點點權,要麼是查詢樹鏈上第 \(k\)

P3376 【模板】網路最大流

題目描述 如題,給出一個網路圖,以及其源點和匯點,求出其網路最大流。 輸入輸出格式 輸入格式: 第一行包含四個正整數N、M、S、T,分別表示點的個數、有向邊的個數、源點序號、匯點序號。 接下來M行每行包含三個正整數ui、vi、wi,表示第i條有向邊從ui出發,到達vi,邊權為wi(即該邊最大流量為w

BZOJ5297: [Cqoi2018]社交網路

BZOJ5297: [Cqoi2018]社交網路 https://lydsy.com/JudgeOnline/problem.php?id=5297 分析: 求外向生成樹個數。 矩陣樹定理模板題。 程式碼: #include <cstdio> #include <cs

ffmpeg 自定義資料來源 可以是檔案可以是記憶體可以是網路 愛咋的咋的

ffmpeg 自定義資料來源, 可以是檔案,可以是記憶體,可以是網路, 愛咋的咋的 // ffmpeg_custom_context.cpp : Defines the entry point for the console application. //