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

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

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

      【CF660E】Different Subsets For All Tuples 結(jié)論題

      【CF660E】Different Subsets For All Tuples

      題意:對于所有長度為n,每個數(shù)為1,2...m的序列,求出每個序列的本質(zhì)不同的子序列的數(shù)目之和。(多個原序列可以有相同的子序列)

      $n,m\le 10^6$

      題解:結(jié)論:一個子序列出現(xiàn)的次數(shù)只與其長度有關(guān)。

      我們可以分別求出每種長度的子序列出現(xiàn)的總次數(shù),顯然答案為:

      $\sum\limits_{i=1}^nm^i\sum\limits_{j=i}^nC_{j-1}^{i-1}(m-1)^{j-i}m^{n-j}$

      (上面沒有考慮k=0,一會要單獨(dú)計(jì)算)

      繼續(xù)化簡

      $\sum\limits_{j=1}^nm^{n-j}\sum\limits_{i=1}^jC_{j-1}^{i-1}(m-1)^{j-i}m^i$

      $\sum\limits_{j=1}^nm^{n-j+1}(2m-1)^{j-1}$

      就完事了。

      #include <cstdio>
      #include <cstring>
      #include <iostream>
      using namespace std;
      typedef long long ll;
      const ll P=1000000007;
      ll f1[1000010],f2[1000010],ans;
      int n,m;
      int main()
      {
      	scanf("%d%d",&n,&m);
      	int i;
      	for(f1[0]=f2[0]=i=1;i<=n;i++)	f1[i]=f1[i-1]*m%P,f2[i]=f2[i-1]*(m+m-1)%P;
      	for(ans=f1[n],i=1;i<=n;i++)	ans=(ans+f1[n-i+1]*f2[i-1])%P;
      	printf("%lld",ans);
      	return 0;
      }
      posted @ 2018-04-02 11:37  CQzhangyu  閱讀(429)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 精品无码国产日韩制服丝袜| 在线a亚洲老鸭窝天堂| 国产精品高清一区二区三区| 女人色熟女乱| 男女吃奶做爰猛烈紧视频| 国产av仑乱内谢| 国产精品系列在线免费看| 人妻熟女av一区二区三区| 精品日本免费一区二区三区| 少妇被无套内谢免费看| 撕开奶罩揉吮奶头高潮av| 亚洲无人区一码二码三码| 伊人久久大香线蕉AV网禁呦| 亚洲综合另类小说色区色噜噜| JIZZJIZZ国产| 九九热视频免费在线播放| jizz国产免费观看| 99久久无码一区人妻a黑| 国产美女被遭强高潮免费一视频| 搡老熟女老女人一区二区| 午夜福利理论片高清在线| 亚洲老妇女亚洲老熟女久| 亚洲成av人片在www色猫咪| 久久精品国产蜜臀av| 亚洲线精品一区二区三八戒| 国产高颜值极品嫩模视频| 欧美人妻在线一区二区| 亚洲 中文 欧美 日韩 在线| 国产亚洲精品第一综合另类| 东京一本一道一二三区| 国产一级特黄高清大片一| 成人av午夜在线观看| 久久一日本综合色鬼综合色| 一区二区三区四区五区色| 亚洲一区二区三区播放| 国产熟女一区二区三区四区| 虎白女粉嫩尤物福利视频| 无码人妻丰满熟妇奶水区码| 亚洲一二三区精品与老人| 美女把尿囗扒开让男人添| 国产热の有码热の无码视频|