#698 B思路:如果一个数大于幸运数字*10那么一定可以由这个幸运数字组成,如果小于d*10那么不清楚所以我们可以打个表把d*10以下可以由幸运数字组成的数枚举出来;#include<stdio.h>#include<string.h>int ai[300010];bool si[20][100];void ins(){ for(int d=1;d<=9;d++) { for(int j=1;j<=10;j++) { si[d][j*d]=1; } } for(int d=1;d<=9;d++) { for(int j=1;j<=d;j++) { int the=j*10+d; si[d][the]=1; for(int k=1;k+the<=d*10;k++) { if(si[d][k]) { si[d][k+the]=1; } } } }}int main(){ int t; scanf("%d",&t); while(t--) { memset(si,0,sizeof(si)); int d,q; scanf("%d%d",&q,&d); ins(); for(int i=1;i<=q;i++) { int x; scanf("%d",&x); if(x>=d*10)printf("YES\n"); else { if(si[d][x])printf("YES\n"); else printf("NO\n"); } } } return 0;}