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

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

Codeforces Round #341 (Div. 2)E(矩陣快速冪優化dp,好題)

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

題目鏈接E. Wet Shark and Blockstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

There are b blocks of digits. Each one consisting of the same n digits, which are given to you in the input. Wet Shark must choose exactly one digit from each block and concatenate all of those digits together to form one large integer. For example, if he chooses digit 1 from the first block and digit 2 from the second block, he gets the integer 12. 

Wet Shark then takes this number modulo x. Please, tell him how many ways he can choose one digit from each block so that he gets exactly k as the final result. As this number may be too large, PRint it modulo 109?+?7.

Note, that the number of ways to choose some digit in the block is equal to the number of it's occurrences. For example, there are 3 ways to choose digit 5 from block 3 5 6 7 8 9 5 1 1 1 1 5.

Input

The first line of the input contains four space-separated integers, nbk and x (2?≤?n?≤?50?000,?1?≤?b?≤?109,?0?≤?k?<?x?≤?100,?x?≥?2) — the number of digits in one block, the number of blocks, interesting remainder modulo x and modulo x itself.

The next line contains n space separated integers ai (1?≤?ai?≤?9), that give the digits contained in each block.

Output

Print the number of ways to pick exactly one digit from each blocks, such that the resulting integer equals k modulo x.

Examplesinput
12 1 5 103 5 6 7 8 9 5 1 1 1 1 5output
3input
3 2 1 26 2 2output
0input
3 2 1 23 1 2output
6Note

In the second sample possible integers are 22, 26, 62 and 66. None of them gives the remainder 1 modulo 2.

In the third sample integers 11, 13, 21, 23, 31 and 33 have remainder 1 modulo 2. There is exactly one way to obtain each of these integers, so the total answer is 6.

題意:

給你n個數,這n個數的大小都在1~9之間,有b塊集合,每個集合內都有這n個數,你要從每個集合中取出一個數,并把它們依次拼接起來合并成一個大的整數,問最后這個整數%x得到k的方案數有多少。

題解:

我們可以先把1~9在n出現的次數用occ[i]存下來 ,然后用dp[i][j]表示取前i個數,最終模x后為j的方案數,那么容易得到dp[0][0]=1,dp[i][j]=sum{dp[i-1][a]*occ[d] }(其中(a*10+d)%x==j),但因為b太大,所以我們考慮用矩陣快速冪優化.

由于對于指定的膜數x,我們可以遍歷每個余數i和j,再遍歷k(k為1-9的數),如果(i*10+k)%x==j,那么矩陣data[i][j]+=occ[k].

然后對構造的這個矩陣進行快速冪運算即可。

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<queue>#include<stack>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define fi first#define se secondtypedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const int inf=0x3fffffff;const ll mod=1000000007;const int maxn=100+10;struct matrix{    int n;    ll data[maxn][maxn];    matrix(int tn=0){        n=tn;        rep(i,0,n) rep(j,0,n) data[i][j]=0;    }    void init(){        rep(i,0,n) data[i][i]=1;    }};matrix Operator *(matrix a,matrix b){    matrix c(a.n);    int n=a.n;    rep(i,0,n) rep(j,0,n) rep(k,0,n) c.data[i][j]=(c.data[i][j]+a.data[i][k]*b.data[k][j]%mod)%mod;    return c;}matrix func(matrix a,int b){    matrix t(a.n),ans(a.n);    ans.init();    t=a;    while(b)    {        if(b&1) ans=ans*t;        t=t*t;        b>>=1;    }    return ans;}int a[15];int main(){    int n,b,kk,x;    scanf("%d%d%d%d",&n,&b,&kk,&x);    rep(i,1,n+1)    {        int p;        scanf("%d",&p);        a[p]++;    }    matrix tmp(x);    rep(i,0,x)        rep(j,0,x)            rep(k,1,10)            if((i*10+k)%x==j) tmp.data[i][j]+=a[k]; //    matrix ans(x);    ans=func(tmp,b);    cout << ans.data[0][kk] << endl;    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频精品一| 色777狠狠综合秋免鲁丝| 亚洲成人黄色在线| 中文字幕日韩精品有码视频| 国产精品嫩草视频| 91av在线播放视频| 中国日韩欧美久久久久久久久| 久久久国产视频91| 国模视频一区二区| 91国产在线精品| 欧美国产精品人人做人人爱| 欧美激情国产日韩精品一区18| 中文字幕日韩欧美| 久久综合伊人77777蜜臀| 欧美性xxxxx极品| 国产精品久久久久久久久久久久久久| 久久亚洲精品国产亚洲老地址| 亚州成人av在线| 视频直播国产精品| 永久免费毛片在线播放不卡| 久久成人18免费网站| 国产精品人成电影在线观看| 欧美高清一级大片| 色综合久综合久久综合久鬼88| 成人黄色激情网| 欧美精品福利在线| 在线a欧美视频| 亚洲天堂av电影| 国产精品人人做人人爽| 久热99视频在线观看| 国产一区二区三区精品久久久| 国外日韩电影在线观看| 日韩av综合中文字幕| 国产精品夜色7777狼人| 日韩欧美精品中文字幕| 精品国产精品自拍| 久色乳综合思思在线视频| 性色av一区二区三区免费| 不卡中文字幕av| 91九色蝌蚪国产| 欧美黑人一级爽快片淫片高清| 国产精品aaa| 欧美成人免费全部| 人妖精品videosex性欧美| 久久久国产视频91| www.日韩不卡电影av| 日韩在线视频网| 成人精品一区二区三区| 一区二区福利视频| 久久久久久亚洲精品中文字幕| 日本精品一区二区三区在线| 欧美激情综合色综合啪啪五月| 亚洲色图第一页| 亚洲视频在线观看网站| 91精品国产高清久久久久久91| 一夜七次郎国产精品亚洲| 精品国内亚洲在观看18黄| 精品成人久久av| 亚洲欧美日韩天堂| 国产suv精品一区二区| 亚洲欧美日韩一区在线| 日韩激情av在线免费观看| 久久99热这里只有精品国产| 国产精品久久久久久久一区探花| 久久久久免费精品国产| 日韩中文字幕视频| 久久久国产成人精品| 国产99在线|中文| 日本久久久久亚洲中字幕| 国产自产女人91一区在线观看| 最新国产精品拍自在线播放| 亚洲国产精品女人久久久| 麻豆国产va免费精品高清在线| 国产精品一区二区久久| 成人中文字幕+乱码+中文字幕| 欧美床上激情在线观看| 97婷婷涩涩精品一区| 日韩一二三在线视频播| 久久高清视频免费| 成人福利在线观看| 欧美俄罗斯性视频| 国产精品高潮呻吟久久av无限| 久久99国产精品久久久久久久久| 亚洲天堂av高清| 国产精品爱啪在线线免费观看| 日韩av日韩在线观看| 在线观看视频99| 中文字幕欧美专区| 欧美成人激情图片网| 欧美性猛xxx| 国产精品久久久久999| 日韩成人在线网站| 一区二区三区www| 亚洲欧美国产精品久久久久久久| 国产亚洲综合久久| 国产精品色悠悠| 久久躁日日躁aaaaxxxx| 国产不卡av在线| 亚洲电影在线观看| 欧美一级视频免费在线观看| 日韩视频免费观看| 国外色69视频在线观看| 欧美视频在线观看免费网址| 亚洲成人久久久| 亚洲自拍偷拍视频| 欧美激情伊人电影| 91在线免费视频| 91精品久久久久久| 亚洲乱码一区二区| 中文字幕精品久久久久| 日韩免费中文字幕| 91精品啪在线观看麻豆免费| 亚洲缚视频在线观看| 5566日本婷婷色中文字幕97| 日韩视频免费中文字幕| 亚洲视频在线观看免费| 欧美福利在线观看| 亚洲欧美日韩中文视频| 色狠狠久久aa北条麻妃| 色哟哟网站入口亚洲精品| 亚洲免费av电影| 中文字幕久精品免费视频| 欧美不卡视频一区发布| 国产精品678| 久热精品视频在线观看一区| 九九视频这里只有精品| 激情久久av一区av二区av三区| 欧美日韩国产丝袜美女| 精品爽片免费看久久| 98精品在线视频| 国产精品啪视频| 日韩av资源在线播放| 欧美午夜性色大片在线观看| 亚洲色图狂野欧美| 国产在线播放不卡| 欧美一级视频在线观看| 欧美在线www| 2019日本中文字幕| 国产精品丝袜久久久久久不卡| 日韩精品极品毛片系列视频| 久99九色视频在线观看| 欧美专区在线播放| 一区三区二区视频| 国产精品成人免费电影| 精品一区二区三区三区| 欧美一级bbbbb性bbbb喷潮片| 91成人在线播放| 亚洲日本成人女熟在线观看| 亚洲自拍偷拍色图| 91高清免费在线观看| 日韩在线欧美在线| 久久久国产精品一区| 91午夜在线播放| 亚洲风情亚aⅴ在线发布| 欧美激情一级精品国产| 久久天堂av综合合色| 在线视频免费一区二区| 日韩国产一区三区| 国内偷自视频区视频综合| 国产亚洲人成a一在线v站| 久久久999国产精品| 色综合91久久精品中文字幕| 九九热r在线视频精品| 日韩av片电影专区|