<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【abc180F】Unbranched

      題意

      問有多少個滿足以下條件且有 \(n\) 個點 \(m\) 條邊的圖:

      1. 沒有自環
      2. 每個點的度最大為 \(2\)
      3. 最大的連通塊大小恰好為 \(L\)

      思路

      因為要求最大的連通塊恰好為 \(L\),發現比較惡心。
      不妨定義 \(F(L)\) 表示最大為 \(L\) 的,則 \(F(L)-F(L-1)\) 就是答案。
      首先分析:由于每個點的度最大為 \(2\),所以可以判斷每個聯通塊要么是鏈,要么是環。
      所以可以設計狀態 \(f_{i,j}\) 表示有 \(i\) 個點,\(j\) 條邊的滿足條件的圖的個數。

      • 對于長為 \(i\) 的鏈,有 \(\frac{i!}{2}\) 種方案。
      • 對于長為 \(i\) 的環,有 \(\frac{(i-1)!}{2}\) 種方案(原排列)。

      除以 \(2\) 是為了去重。
      那如何解決連通塊之間的去重問題?可以采用欽定最小值的方法,則我們在 \(n\) 個點里面選 \(i\) 個點出來組成一個連通塊的方案數為 \(\binom{n-1}{i-1}\)\(-1\) 是因為欽定了最小值。
      則有轉移式:

      \[f_{i,j} = f_{i-t,j-t+1} * \binom{n-i+t-1}{t-1} \frac{t!}{2} \]

      \[f_{i,j} = f_{i-t,j-t} * \binom{n-i+t-1}{t-1} \frac{(t-1)!}{2} \]

      大小為 \(1\) 的鏈和大小為 \(2\) 的環不用除以 \(2\),因為不重。

      #include<bits/stdc++.h>
      #define ll long long
      
      using namespace std;
      
      const ll N = 305,mod = 1e9+7,inv = 500000004;
      
      int n,m,L;
      ll f[N][N];
      ll C[N][N],fac[N];
      
      void init() {
      	C[0][0]=1,fac[0]=1;
      	for(int i=1;i<=300;i++)
      		fac[i]=fac[i-1]*i%mod;
      	
      	for(int i=1;i<=300;i++){
      		C[i][0]=1;
      		for(int j=1;j<=i;j++)
      			C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
      	}
      }
      
      void add(ll &x,ll y){
      	(x+=y)%=mod;
      }
      
      ll DP(ll lim){
      	memset(f,0,sizeof(f));
      	f[0][0]=1;
      	for(int i=1;i<=n;i++){
      		for(int j=0;j<=m;j++){
      			for(int t=1;t<=min(lim,(ll)i);t++){
      				if(t>1 && j>=t)add(f[i][j],1ll*f[i-t][j-t]%mod*C[n-i+t-1][t-1]%mod*fac[t-1]%mod*(t==2 ? 1 : inv)%mod);
      				if(j>=t-1)add(f[i][j],1ll*f[i-t][j-t+1]%mod*C[n-i+t-1][t-1]%mod*fac[t]%mod*(t==1 ? 1 : inv)%mod);
      			}
      		}
      	}
      	return f[n][m];
      }
      int main() {
      	cin>>n>>m>>L;
      	init();
      	cout<<(DP(L)-DP(L-1)+mod)%mod;
      	return 0;
      }
      
      posted @ 2025-09-17 21:23  Harvey-zhuhy  閱讀(5)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 在线精品自拍亚洲第一区| 国产成人a在线观看视频免费| 淄博市| 午夜福利国产片在线视频| 一区二区三区精品偷拍| 国产免费高清69式视频在线观看| 久久久久久久久毛片精品| 2021国产在线视频| 亚洲综合无码一区二区三区不卡| 国产在线乱子伦一区二区| 一区二区丝袜美腿视频| 欧美国产日产一区二区| 国产一区二区三区小说| 国产片av在线观看国语| 国产一区二区不卡在线| 扒开双腿猛进入喷水高潮叫声| 日韩人妻av一区二区三区| 人人爽人人爽人人片av东京热| 国内少妇偷人精品免费| 性一交一乱一乱一视频| 最近中文字幕免费手机版| 自拍视频在线观看三级| 亚洲色欲在线播放一区| 高清有码国产一区二区| 久久综合综合久久综合| 日韩精品一区二区三区vr| 日韩人妻无码一区二区三区99| 乱色精品无码一区二区国产盗| 欧美日韩欧美| 久久天堂综合亚洲伊人HD妓女 | 乱熟女高潮一区二区在线| 亚洲成人av一区免费看| 亚洲中文字幕无码av在线| 色综合久久婷婷88| 中文无码乱人伦中文视频在线| 无码人妻久久久一区二区三区| 久久美女夜夜骚骚免费视频| 精品国产福利久久久| 欧美老少配性行为| 蜜臀在线播放一区在线播放| 久久人人97超碰精品|