9512.net
甜梦文库
当前位置:首页 >> 学科竞赛 >>

hdu5628



#include<cstdio> #include<cstring> #define?MO?1000000007 #define?LMAX?100100 #define?ll?long?long?int using?namespace?std; int?sza[2][LMAX]; int?szk[2][LMAX]; int?szt[2][LMAX]; in

t?numt; int?len; int?ci; void?cheng(int?sza[],int?szb[],int?szc[]) { int?f1; int?f2; int?f3; for(f1=1;f1<=len;f1++) for(f2=1,f3=f1;f3<=len;f2++,f3+=f1) szc[f3]=(szc[f3]+(ll)sza[f1]*szb[f2])%MO; return; } int?kmi(int?ci) { int?n1; int?n2; int?f1; for(f1=1;f1<=len;f1++) { szk[0][f1]=1; sza[0][f1]=0; } sza[0][1]=1; for(n1=0,n2=0;ci!=0;ci>>=1) { if(ci&1) { memset(sza[n2^1],0,sizeof(sza[n2^1])); cheng(szk[n1],sza[n2],sza[n2^1]); n2^=1; } memset(szk[n1^1],0,sizeof(szk[n1^1])); cheng(szk[n1],szk[n1],szk[n1^1]); n1^=1; } return?n2; } int?main() { int?f0; int?f1; scanf("%d",&numt); for(f0=1;f0<=numt;f0++) { scanf("%d%d",&len,&ci); for(f1=1;f1<=len;f1++) scanf("%d",&szt[0][f1]);

memset(szt[1],0,sizeof(szt[1])); cheng(szt[0],sza[kmi(ci)],szt[1]); for(f1=1;f1<len;f1++) printf("%d?",szt[1][f1]); printf("%d\n",szt[1][len]); } return?0; }



更多相关文章:
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图