luogu P3244 [HNOI2015]落憶楓音

傳送門

md這題和矩陣樹定理沒半毛錢關系qwq

首先先不考慮有環,一個\(DAG\)個外向樹個數為\(\prod_{i=2}^{n}idg_i(\)就是\(indegree_i)\),因為外向樹每個點入度為一,對于一個點有入度個父親可選,然后乘法原理起來就是答案

現在可能加一條邊會有環,那么答案可以考慮總方案減不合法方案,不合法的有環方案就是環內的點連好了,然后剩下的點貢獻方案,設\(s\)是個環,那么方案為\(\sum_{s}\prod_{i\notin s}idg_i=\sum_{s}\frac{\prod_{i=2}^{n}idg_i}{\prod_{i\in s}idg_i}=\prod_{i=2}^{n}idg_i\sum_{s}\frac{1}{\prod_{i\in s}idg_i}\)

后面那個東西,因為加了邊\(x\rightarrow y\),所以一條\(y\)\(x\)可以確定一個環,那么以\(y\)為初始狀態,可拓撲排序一遍dp出來方案

注意\(y=1\)的情況

#include<bits/stdc++.h>
#define LL long long
#define db double
#define il inline
#define re registerusing namespace std;
const int N=1e5+10,mod=1e9+7;
il int rd()
{int x=0,w=1;char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w;
}
int to[N<<1],nt[N<<1],hd[N],dg[N],idg[N],tot;
void add(int x,int y){++tot,to[tot]=y,nt[tot]=hd[x],hd[x]=tot,++dg[y];}
int n,m,u,v,f[N],inv[N];
queue<int> q;int main()
{n=rd(),m=rd(),u=rd(),v=rd();for(int i=1;i<=m;++i){int x=rd(),y=rd();add(x,y);}int ans=1;for(int i=2;i<=n;++i) ans=1ll*ans*(dg[i]+(v==i))%mod;if(v!=u&&v!=1){memcpy(idg,dg,sizeof(dg));inv[0]=inv[1]=1;for(int i=2;i<=n+1;++i) inv[i]=(mod-1ll*mod/i*inv[mod%i]%mod)%mod;f[v]=1,q.push(1);while(!q.empty()){int x=q.front();q.pop();f[x]=1ll*f[x]*inv[dg[x]+(x==v)]%mod;for(int i=hd[x];i;i=nt[i]){int y=to[i];f[y]=(f[y]+f[x])%mod,--idg[y];if(!idg[y]) q.push(y);}}ans=1ll*ans*(1-f[u]+mod)%mod;}printf("%d\n",ans);return 0;
}

轉載于:https://www.cnblogs.com/smyjr/p/10433079.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387338.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387338.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387338.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EM算法 案例量則

例子一&#xff1a;理論&#xff1a; 簡版&#xff1a;猜&#xff08;E-step&#xff09;,反思&#xff08;M-step&#xff09;,重復&#xff1b; 啰嗦版&#xff1a; 你知道一些東西&#xff08;觀察的到的數據&#xff09;&#xff0c; 你不知道一些東西&#xff08;觀察不到…

遠程拷貝代碼 指定端口

將本地testdir拷貝到遠程服務器tmp目錄下 scp -r -p 9022 testdir xiaoming192.168.0.2:/tmp/ 轉載于:https://www.cnblogs.com/sea-stream/p/10436199.html

C#編寫TensorFlow人工智能應用 TensorFlowSharp

TensorFlowSharp入門使用C#編寫TensorFlow人工智能應用學習。 TensorFlow簡單介紹 TensorFlow 是谷歌的第二代機器學習系統&#xff0c;按照谷歌所說&#xff0c;在某些基準測試中&#xff0c;TensorFlow的表現比第一代的DistBelief快了2倍。 TensorFlow 內建深度學習的擴展支持…

簡單的MVC與SQL Server Express LocalDB

M模式&#xff1a; 類&#xff0c;表示數據的應用程序和使用驗證邏輯以強制實施針對這些數據的業務規則。V視圖&#xff1a; 應用程序使用動態生成 HTML 響應的模板文件。C控制器&#xff1a; 處理傳入的瀏覽器請求的類中檢索模型數據&#xff0c;然后指定將響應返回到瀏覽器的…

馬爾可夫鏈 (Markov Chain)是什么鬼

作者&#xff1a;紅猴子鏈接&#xff1a;https://www.zhihu.com/question/26665048/answer/157852228來源&#xff1a;知乎著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。馬爾可夫鏈 &#xff08;Markov Chain&#xff09;是什么鬼 它是隨機…

malloc/free 和 new/delete

(本文參考于網上&#xff09; 首先兩者都可用于申請動態內存和釋放內存&#xff61; 對于非內部數據類型的對象而言&#xff0c;只用malloc/free無法滿足動態對象的要求。對象在創建的同時要自動執行構造函數&#xff0c;對象在消亡之前要自動執行析構函數。由于malloc/free是庫…

主題模型-LDA淺析

個性化推薦、社交網絡、廣告預測等各個領域的workshop上都提到LDA模型&#xff0c;感覺這個模型的應用挺廣泛的&#xff0c;會后抽時間了解了一下LDA&#xff0c;做一下總結&#xff1a; &#xff08;一&#xff09;LDA作用 傳統判斷兩個文檔相似性的方法是通過查看兩個文檔共…

dorado-SplitSpanel控件

1.這是一個界面布局控件 2.分為SideControl邊區域和MainControl主區域 3.常用屬性 3.1 collapsed&#xff1a;打開頁面時&#xff0c;邊區域是否顯示 3.2 position&#xff1a;邊區域占總的大小 轉載于:https://www.cnblogs.com/ergougougou/p/10438752.html

mysql-視圖、事物等

一、視圖 視圖是一個虛擬表&#xff08;非真實存在&#xff09;&#xff0c;其本質是【根據SQL語句獲取動態的數據集&#xff0c;并為其命名】&#xff0c;用戶使用時只需使用【名稱】即可獲取結果集&#xff0c;可以將該結果集當做表來使用。 使用視圖我們可以把查詢過程中的臨…

CAFFE怎樣跑起來

0、參考文獻 [1]caffe官網《Training LeNet on MNIST with Caffe》; [2]薛開宇《讀書筆記4學習搭建自己的網絡MNIST在caffe上進行訓練與學習》&#xff08;[1]的翻譯版&#xff0c;同時還有作者的一些注解&#xff0c;很贊&#xff09;; 1、*.sh文件如何執行&#xff1f; ①方…

運行caffe自帶的兩個簡單例子

為了程序的簡潔&#xff0c;在caffe中是不帶練習數據的&#xff0c;因此需要自己去下載。但在caffe根目錄下的data文件夾里&#xff0c;作者已經為我們編寫好了下載數據的腳本文件&#xff0c;我們只需要聯網&#xff0c;運行這些腳本文件就行了。 注意&#xff1a;在caffe中運…

quartz.net 執行后臺任務

... https://www.cnblogs.com/zhangweizhong/category/771057.html https://www.cnblogs.com/lanxiaoke/category/973331.html 宿主在控制臺程序中 using System;using System.Collections.Specialized;using System.IO;using System.Threading.Tasks;using Quartz;using Quart…

運行caffe自帶的mnist實例詳細教

為了程序的簡潔&#xff0c;在caffe中是不帶練習數據的&#xff0c;因此需要自己去下載。但在caffe根目錄下的data文件夾里&#xff0c;作者已經為我們編寫好了下載數據的腳本文件&#xff0c;我們只需要聯網&#xff0c;運行這些腳本文件就行了。 Mnist介紹&#xff1a;mnist是…

6 軟件的安裝

6 軟件包管理 6.1 簡介 軟件包分類&#xff1a; 源碼包 源代碼&#xff08;大多數是C語言&#xff09; 安裝時慢&#xff0c;容易報錯 >腳本安裝包 對源碼包進行改裝&#xff0c;使安裝更簡單&#xff0c;不多。 rpm包 二進制包 Ubuntu系列的二進制包不是rpm&#xf…

STD函數的內部計算公式

各股票軟件的標準差函數STD是不同的&#xff0c;而布林線的上下軌是以STD為基礎計算出來的&#xff0c;所以使用布林線應小心。以2008/3/28的上證綜指為例&#xff0c;利用如下代碼&#xff1a;"收盤價3日STD:STD(CLOSE,3);"&#xff0c;三日收盤價分別是&#xff1a…

caffe路徑正確,卻讀不到圖片

調試caffe&#xff0c;用已有的網絡訓練自己的數據集的時候&#xff08;我這里做的是二分類&#xff09;。在生成均值文件之后&#xff0c;開始train&#xff0c;發現出現了這個問題。 1&#xff0c;路徑正確&#xff0c;卻讀不到圖片。 [db_lmdb.hpp:15] Check failed: mdb_st…

Eclipse可以執行jsp文件卻無法訪問Tomcat主頁

點擊Servers,然后雙擊本地的Tomcat服務器 出現如下界面 這里要選擇第二項 再重新啟動Tomcat就行了 轉載于:https://www.cnblogs.com/lls1350767625/p/10452565.html

caffe調用的一個例子

本文是學習Caffe官方文檔"ImageNet Tutorial"時做的&#xff0c;同樣由于是Windows版本的原因&#xff0c;很多shell腳本不能直接使用&#xff0c;走了不少彎路&#xff0c;但是收獲也不少。比如&#xff1a;如何讓shell腳本在Windows系統上直接運行、如何去用Caffe給…

孔銅的銅厚

---恢復內容開始--- 表面處理方式注釋&#xff1a; 噴錫 噴錫鉛合金是一種最低成本PCB表面有鉛工藝&#xff0c;它能保持良好的可焊接性。但對于精細引腳間距(<0.64mm)的情況&#xff0c;可能導致焊料的橋接和厚度問題。 無鉛噴錫 一種無鉛表面處理工藝&#xff0c;符合“環…