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

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

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

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

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
国产精品美女www爽爽爽视频| 色一情一乱一区二区| 欧美色视频日本版| 中文字幕欧美日韩va免费视频| 亚洲缚视频在线观看| 欧美高清视频在线观看| 久久精品亚洲热| 高清欧美电影在线| 2021国产精品视频| 欧美视频二区36p| 最近2019中文字幕一页二页| 亚洲欧美国内爽妇网| 亚洲一区二区福利| 久久久久久久久久久91| 久久夜色精品亚洲噜噜国产mv| 97超碰国产精品女人人人爽| 青草青草久热精品视频在线网站| 亚洲欧美在线看| 北条麻妃99精品青青久久| 91欧美精品成人综合在线观看| 久久久女女女女999久久| 精品一区电影国产| 亚洲国产精品电影| 国产精品成人一区二区| 欧美亚洲视频在线观看| 日韩精品极品视频| 欧美日韩人人澡狠狠躁视频| 久热99视频在线观看| 高清日韩电视剧大全免费播放在线观看| 热久久这里只有| 亚洲香蕉成人av网站在线观看| 亚洲精品福利视频| 2019日本中文字幕| 欧美精品成人91久久久久久久| 国模吧一区二区三区| 最新国产精品亚洲| 在线成人免费网站| 国产精品久久久久久av| 精品高清一区二区三区| 欧美黑人国产人伦爽爽爽| 日韩大片在线观看视频| 中文日韩在线观看| 久久久久久久久久国产| 国产精品白丝av嫩草影院| 日韩中文字幕第一页| 在线精品91av| 亚洲精品视频网上网址在线观看| 欧美大尺度在线观看| 国产成人精品999| 国产精品视频免费在线观看| 日韩av一区二区在线观看| 日本一区二区在线免费播放| 国产一区二区三区在线播放免费观看| 久久久女女女女999久久| 国产精品视频专区| 欧美精品18videosex性欧美| 亚洲摸下面视频| 中文字幕免费精品一区高清| 97欧美精品一区二区三区| 国语自产精品视频在线看抢先版图片| 亚洲欧美三级伦理| 国产精品成人播放| 久操成人在线视频| 久久影视电视剧免费网站清宫辞电视| 一区二区三区四区精品| 国产精品 欧美在线| 亚洲影视中文字幕| 日韩精品久久久久| 日本高清视频一区| 亚洲999一在线观看www| 色偷偷偷综合中文字幕;dd| 国产精品欧美久久久| 97碰碰碰免费色视频| 亚洲夜晚福利在线观看| 久久久视频免费观看| 国内偷自视频区视频综合| 国产欧美日韩精品专区| 中文字幕久久久av一区| 亚洲国产日韩欧美综合久久| 国产在线一区二区三区| 亚洲电影中文字幕| 亚洲精品xxxx| 精品动漫一区二区三区| 亚洲国产精品久久久久久| 亚洲永久免费观看| 国产精品老牛影院在线观看| 精品国产精品三级精品av网址| 国产精品一区二区久久久久| 国产欧美婷婷中文| 91精品国产自产在线观看永久| 欧美在线欧美在线| 国产欧亚日韩视频| 欧美专区在线播放| 国产精品99久久久久久白浆小说| 欧美裸体xxxx| 国产一区二区三区精品久久久| 国产美女高潮久久白浆| 成人免费视频在线观看超级碰| 欧美日韩国产一区在线| 亚洲天堂一区二区三区| 国产中文字幕亚洲| 国产精品揄拍一区二区| 国产精品网红福利| 午夜精品福利在线观看| 久久视频在线观看免费| 国产丝袜精品第一页| 久久久久久久久国产精品| 欧美激情成人在线视频| 久久久久久亚洲精品| 国产美女高潮久久白浆| 日韩免费av片在线观看| 欧美特黄级在线| 欧美电影在线观看网站| 日韩视频中文字幕| 欧美视频中文在线看| 欧美在线观看www| 国产激情视频一区| 亚洲精品999| 在线播放国产一区二区三区| 日本国产精品视频| 欧美日韩国产中文字幕| 久久综合久久美利坚合众国| 欧美成年人视频| 亚洲一区二区久久久久久| 国产成人精品在线| 欧洲一区二区视频| 久久久99久久精品女同性| 亚洲码在线观看| 国产亚洲福利一区| 亚洲精品国产拍免费91在线| 国产丝袜一区二区| 日日摸夜夜添一区| 欧美激情综合色| 欧洲s码亚洲m码精品一区| 最近2019中文字幕一页二页| 亚洲视频第一页| 成人精品一区二区三区电影黑人| 国产99视频精品免视看7| 91黑丝高跟在线| 国产精品午夜国产小视频| 日韩国产欧美精品在线| 岛国av一区二区在线在线观看| 日本亚洲精品在线观看| 欧美日韩激情美女| 欧美日韩国产一区二区三区| 亚洲缚视频在线观看| 在线电影欧美日韩一区二区私密| 中文字幕在线看视频国产欧美在线看完整| 一本色道久久综合亚洲精品小说| 国产精品电影久久久久电影网| 91tv亚洲精品香蕉国产一区7ujn| 8090理伦午夜在线电影| 91av福利视频| 欧美一区二区三区免费观看| 国产精自产拍久久久久久蜜| 欧美成人午夜激情| 原创国产精品91| 精品自拍视频在线观看| 久久久久久久999| 国产精品日韩在线| 国产欧美日韩视频| 中文字幕亚洲二区| 国产日韩欧美一二三区| 亚洲国产成人久久综合|