亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Codeforces 514E Darth Vader and Tree【Dp+矩陣快速冪優化】

2019-11-14 10:58:55
字體:
來源:轉載
供稿:網友

E. Darth Vader and Treetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

When Darth Vader gets bored, he sits down on the sofa, closes his eyes and thinks of an infinite rooted tree where each node has exactlyn sons, at that for each node, the distance between it an itsi-th left child equals to di. The Sith Lord loves counting the number of nodes in the tree that are at a distance at mostx from the root. The distance is the sum of the lengths of edges on the path between nodes.

But he has got used to this activity and even grew bored of it. 'Why does he do that, then?' — you may ask. It's just that he feels superior knowing that only he can solve this PRoblem.

Do you want to challenge Darth Vader himself? Count the required number of nodes. As the answer can be rather large, find it modulo109?+?7.

Input

The first line contains two space-separated integers n andx (1?≤?n?≤?105,?0?≤?x?≤?109) — the number of children of each node and the distance from the root within the range of which you need to count the nodes.

The next line contains n space-separated integersdi (1?≤?di?≤?100) — the length of the edge that connects each node with itsi-th child.

Output

Print a single number — the number of vertexes in the tree at distance from the root equal to at mostx.

ExamplesInput
3 31 2 3Output
8Note

Pictures to the sample (the yellow color marks the nodes the distance to which is at most three)

題目大意:有一棵樹,最開始就一個根節點,每個節點都有N個兒子,這個節點距離每個兒子的距離為di(1<=di<=100),問你距離根節點距離小于等于X的節點個數有多少個。思路:1、如果對于統計個數,我們考慮dp,設定dp【i】表示距離根節點距離為i的節點個數。那么不難推出狀態轉移方程:dp【i】=Σdp【i-j】*len【j】;2、顯而易見,直接dp是會超時的,考慮優化,既然我們有了遞推式,那么我們不妨介入矩陣優化。然后矩陣快速冪就能夠做到O(LogX)的時間復雜度。3、既然有了dp遞推式,那么矩陣的構造也就不難了:①因為最大長度di==100,那么我們不妨將矩陣構造為101*101的大小,最后一行用來轉移sum.因為我們要求的是Σdp【i】(0<=i<=X),而不是dp【X】;②那么接下來預處理出dp【0~100】;③那么有:③對應求Sum【X】的時候,將第二個矩陣按照冪次增加即可。Ac代碼:
#include<stdio.h>#include<string.h>using namespace std;#define ll __int64#define mod 1000000007typedef struct Matrix{    ll mat[105][105];}matrix;matrix A,B,tmp,ans;ll len[105];ll dp[100000];Matrix matrix_mul(matrix a,matrix b){    matrix c;    memset(c.mat,0,sizeof(c.mat));    ll i,j,k;    for(ll i=0;i<101;i++)    {        for(ll j=0;j<101;j++)        {            for(ll k=0;k<101;k++)            {                c.mat[i][j]=(c.mat[i][j]+(a.mat[i][k]*b.mat[k][j])%mod)%mod;            }        }    }    return c;}Matrix matrix_quick_power(matrix a,ll k)//矩陣快速冪0.0{    matrix b;    memset(b.mat,0,sizeof(b.mat));    for(ll i=0;i<101;i++)    b.mat[i][i]=1;//單位矩陣b    while(k)    {        if(k%2==1)        {            b=matrix_mul(a,b);            k-=1;        }        else        {            a=matrix_mul(a,a);            k/=2;        }    }    return b;}int main(){    ll n,m;    while(~scanf("%I64d%I64d",&n,&m))    {        memset(len,0,sizeof(len));        memset(dp,0,sizeof(dp));        for(ll i=1;i<=n;i++)        {            ll x;            scanf("%I64d",&x);            len[x]++;        }        dp[0]=1;        for(ll i=1;i<=100;i++)        {            for(ll j=1;j<=i;j++)            {                dp[i]+=dp[i-j]*len[j];                dp[i]%=mod;            }        }        ll presum=0;        for(ll i=1;i<=m&&i<=100;i++)presum+=dp[i],presum%=mod;        if(m<=100)        {            printf("%I64d/n",presum+1);        }        else        {            memset(A.mat,0,sizeof(A.mat));            memset(tmp.mat,0,sizeof(tmp.mat));            for(ll i=0;i<100;i++)tmp.mat[i][0]=dp[i+1];            tmp.mat[100][0]=presum+1;            for(ll i=0;i<99;i++)            {                A.mat[i][i+1]=1;            }            for(ll i=0;i<100;i++)A.mat[99][i]=len[100-i];            for(ll i=0;i<100;i++)A.mat[100][i]=len[100-i];            A.mat[100][100]=1;            B=matrix_quick_power(A,m-100);            B=matrix_mul(B,tmp);            printf("%I64d/n",(B.mat[100][0]+mod)%mod);        }    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产区精品在线观看| 欧美性xxxxx极品娇小| 欧美激情精品久久久久久大尺度| 精品国产欧美一区二区五十路| 亚洲国产欧美日韩精品| 97婷婷大伊香蕉精品视频| 粉嫩老牛aⅴ一区二区三区| 福利精品视频在线| 久久99亚洲精品| 中文字幕欧美日韩精品| 性色av一区二区三区红粉影视| 日本一区二区三区四区视频| 九九热精品视频国产| 国产国语videosex另类| 国产丝袜精品第一页| 久久99久久亚洲国产| 欧美性高潮床叫视频| 成人精品一区二区三区电影黑人| 中日韩美女免费视频网站在线观看| 国产大片精品免费永久看nba| 深夜福利一区二区| 日韩二区三区在线| 日韩在线观看免费av| 欧美一区二区三区免费观看| 成人免费在线网址| 久久99国产精品自在自在app| 欧美在线视频免费播放| 国产精品香蕉国产| 97在线观看免费| 欧美激情视频一区二区| 理论片在线不卡免费观看| 国产精品久久久久久久久久东京| 成人黄色激情网| 国产69精品久久久久9999| 欧美午夜xxx| 日韩成人网免费视频| 国产成人精品一区二区| 韩国视频理论视频久久| 国产成人一区二区三区电影| 最近中文字幕mv在线一区二区三区四区| 97精品久久久| 日韩最新免费不卡| 91黄色8090| 欧美肥臀大乳一区二区免费视频| 欧美日韩国产在线| 欧美成人精品一区二区| 欧美精品少妇videofree| 国产精品久久久久久久久久三级| 国产一区二区在线免费视频| 亚洲一级黄色片| 成人免费观看49www在线观看| 色av中文字幕一区| 中文字幕不卡在线视频极品| 日韩欧美国产一区二区| 91在线精品视频| 国产精品视频一| 欧美丰满少妇xxxx| 萌白酱国产一区二区| 欧美成人一二三| 精品综合久久久久久97| 欧美视频二区36p| 国产亚洲人成网站在线观看| 91久久在线播放| 中文字幕精品网| 精品人伦一区二区三区蜜桃网站| 成人妇女免费播放久久久| 亚洲国产另类久久精品| 欧美精品精品精品精品免费| 精品女厕一区二区三区| 国产精品美女久久久久久免费| 久久精彩免费视频| 日韩激情在线视频| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国产精品嫩草影院久久| 欧美在线视频观看免费网站| 久久精品国产91精品亚洲| 91精品视频大全| 成人福利视频在线观看| 欧美激情二区三区| 色99之美女主播在线视频| 欧美在线免费视频| 久久影院中文字幕| 欧美成人午夜影院| 国产精品久久久久一区二区| 日韩精品免费在线观看| 自拍亚洲一区欧美另类| 久久在线视频在线| 国产欧美在线播放| 精品亚洲一区二区三区四区五区| 中文字幕亚洲欧美一区二区三区| 欧美日韩国产成人高清视频| 最近2019中文字幕在线高清| 国产精品美女久久久久av超清| 欧美乱大交xxxxx| 国产一区私人高清影院| 麻豆国产精品va在线观看不卡| 国产成人黄色av| 91亚洲精品视频| 久久在精品线影院精品国产| 欧洲成人午夜免费大片| 国产91ⅴ在线精品免费观看| 亚洲国产精品美女| 中文字幕九色91在线| 亚洲女同性videos| 国产精品青草久久久久福利99| 久久福利网址导航| 国产成人亚洲综合91精品| 亚洲无限av看| 久久夜色精品亚洲噜噜国产mv| 91亚洲一区精品| 在线观看欧美视频| 日韩精品在线视频观看| 久久久久久香蕉网| 国产一区二区丝袜| 中文字幕亚洲第一| 菠萝蜜影院一区二区免费| 51视频国产精品一区二区| 亚洲香蕉av在线一区二区三区| 91精品中文在线| 77777少妇光屁股久久一区| 国产精品视频专区| 日韩欧美国产骚| 欧美丰满少妇xxxx| 国产成人欧美在线观看| 欧美—级高清免费播放| 91午夜在线播放| 最近2019年中文视频免费在线观看| 欧美成人精品一区| 亚洲欧美另类中文字幕| xvideos亚洲人网站| 国产精欧美一区二区三区| 日韩在线观看电影| 日韩电影中文字幕av| 久久人人看视频| 国产精品美女免费视频| 亚洲天堂成人在线| 国产精品国语对白| 日本午夜精品理论片a级appf发布| 亚洲精品不卡在线| 亚洲女性裸体视频| 成人黄色av免费在线观看| 亚洲欧美国产va在线影院| 日韩中文字幕免费| 日韩精品在线观看一区二区| 国产精品福利网| 欧美极品少妇xxxxⅹ裸体艺术| 欧美精品久久久久久久久| 亚洲视频综合网| 成人激情电影一区二区| 欧美激情视频播放| 成人免费网站在线看| 国产精品三级在线| 2023亚洲男人天堂| 亚洲精品av在线播放| 国产精品美女www爽爽爽视频| 亚洲欧洲日产国码av系列天堂| 中文字幕一区二区三区电影| 亚洲第一精品夜夜躁人人躁| 影音先锋欧美在线资源| 色婷婷av一区二区三区在线观看| 亚洲欧美综合区自拍另类| 国产精品香蕉av| 日韩欧美精品在线观看| 国产成人午夜视频网址|