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

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

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

      P12028 [USACO25OPEN] Moo Decomposition G 題解

      其實從前往后做也是可以的。

      解析

      先不考慮 \(L\)

      一個很自然的想法是從前往后讓每個 \(\texttt{O}\) 跟一個在它前面的 \(\texttt{M}\) 配對。問題在于 \(K\) 的限制難以滿足。

      所以先滿足 \(K\) 的限制,對于每個 \(\texttt{M}\),在它后面預(yù)留 \(K\) 個空位用來放 \(\texttt{O}\)。這樣對于每個 \(\texttt{O}\),只需要隨便找一個在它前面的 \(\texttt{M}\) 的一個空位放進去就好,這一步的方案數(shù)就是當(dāng)前空位個數(shù),利用乘法原理就可以求出總方案數(shù)。

      但是我們發(fā)現(xiàn)這樣放的話 \(\texttt{O}\) 的順序是亂的,實際上 \(\texttt{O}\) 的順序應(yīng)該是按照其在 \(S\) 中的位置來排的,所以對于每個 \(\texttt{M}\),需要除一個排列數(shù)。

      然后來考慮 \(L\)

      如果 \(T\) 無解,要么是當(dāng)前的 \(\texttt{O}\) 找不到一個合適的 \(\texttt{M}\) 匹配,要么是 \(\texttt{O}\) 不夠拿來匹配。對于前者,不管后面拼多少個 \(T\) 都匹配不了前面的 \(\texttt{O}\);對于后者,不管后面拼多少個 \(T\) 都拿不出多余的 \(\texttt{O}\)。也就是說,一個無解的 \(T\),不管拼接多少次,它都是無解的。

      如果 \(T\) 有解,考慮拼接后前一段的 \(\texttt{M}\) 會不會匹配上后一段的 \(\texttt{O}\),答案是不會,因為這樣的話前一段就會有 \(\texttt{O}\) 匹配不上了。

      綜上,每一段對答案做的貢獻是獨立且相同的,最終要求的答案就是單段方案數(shù)的 \(L\) 次冪。

      代碼

      #include <bits/stdc++.h>
      #define ls(x) ((x) << 1)
      #define rs(x) ((x) << 1 | 1)
      #define mid ((l + r) >> 1)
      #define eps 0.000001
      using namespace std;
      typedef __int128 i128;
      typedef long long ll;
      typedef unsigned long long ull;
      typedef pair<ll,int> pii;
      const int N = 1e5 + 5, M = 2e5 + 5,base1 = 13331,base2 = 131,mod = 1e9 + 7;
      int qmi(int a,ll b){
      	int res = 1;
      	while(b){
      		if(b & 1) res = 1ll * res * a % mod;
      		b >>= 1;
      		a = 1ll * a * a % mod;
      	}
      	return res;
      } 
      int main(){
          ios::sync_with_stdio(false);
          cin.tie(0), cout.tie(0);
      //	freopen("in.txt","r",stdin);
      //	freopen("out.txt","w",stdout);
      	ll k,n,l;
      	cin>>k>>n>>l;
      	int fac = 1;
      	for(int i=1;i<=k;i++){
      		fac = 1ll * i * fac % mod;
      	}
      	string s;
      	cin>>s;
      	int now = 0,res = 1,cntm = 0;
      	for(int i=0;i<s.size();i++){
      		if(s[i] == 'M') now += k,cntm++;
      		else{
      			res = 1ll * res * now % mod;
      			now--;
      		}
      	}
      	assert(now == 0);
      //	cout<<s.size()<<" "<<res<<" "<<fac<<" "<<cntm<<'\n';
      	cout<<qmi(1ll * res * qmi(qmi(fac,cntm),mod - 2) % mod,l);
      	return 0;
      }
      
      posted @ 2025-08-20 06:41  yuyce  閱讀(2)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产日韩一区三区| WWW丫丫国产成人精品| 筠连县| 成人区人妻精品一区二蜜臀| 亚洲国产成熟视频在线多多| 亚洲av与日韩av在线| 蜜臀精品视频一区二区三区 | 色午夜一av男人的天堂| 国产免费高清69式视频在线观看 | 亚洲黄色第一页在线观看| 国产精品中文字幕第一区| 国产91精品调教在线播放| 国产成人高清亚洲综合| 国产成人精品一区二区三| 天美传媒mv免费观看完整| 91亚洲国产三上悠亚在线播放| 久热天堂在线视频精品伊人| 午夜成人精品福利网站在线观看| 国产成人剧情AV麻豆果冻| 少妇高潮水多太爽了动态图| 熟女一区二区中文字幕| 四虎网址| 国产精品国产三级国AV| 国色天香成人一区二区| 粉嫩av国产一区二区三区| 免费国产女王调教在线视频 | 综1合AV在线播放| 亚洲一本大道在线| 日韩激情一区二区三区| 亚洲精品中文av在线| 日韩精品中文字幕无码一区| 九寨沟县| 国产成人av三级在线观看| 免费A级毛片无码A∨蜜芽试看| 国产精品aⅴ免费视频| 在线精品国产成人综合| 久久亚洲精品人成综合网| 无码日韩av一区二区三区| a级黑人大硬长爽猛出猛进| 精品国产粉嫩一区二区三区| 日本公妇乱偷中文字幕|