using namespace std;
const int mod = 998244353;
using ll = long long;
ll p[10];
ll ksm(int a, int b){
ll t = a;
ll ans = 1;
while(b){
if(b & 1) ans = ans * t % mod;
t = t * t % mod;
b >>= 1;
}
return ans;
}
void solve(){
int c;
cin >> c;
ll a[8],b[8];
for(int i = 1; i < 8; i ++){
cin >> a[i];
b[i] = 100 - a[i];
a[i] = a[i] * ksm(100, mod - 2) % mod;
b[i] = b[i] * ksm(100, mod - 2) % mod;
}
p[0] = a[1] % mod * a[2] % mod * a[3] % mod * b[4] % mod * a[5] % mod * a[6] % mod * a[7] % mod;
p[1] = a[3] % mod * a[6] % mod * b[1] % mod * b[2] % mod * b[4] % mod * b[5] % mod * b[7] % mod;
p[2] = a[1] % mod * a[3] % mod * a[4] % mod * a[5] % mod * a[7] % mod * b[2] % mod * b[6] % mod;
p[3] = a[1] % mod * b[2] % mod * a[3] % mod * a[4] % mod * b[5] % mod * a[6] % mod * a[7] % mod;
p[4] = b[1] % mod * a[2] % mod * a[3] % mod * a[4] % mod * b[5] % mod * a[6] % mod * b[7] % mod;
p[5] = a[1] % mod * a[2] % mod * b[3] % mod * a[4] % mod * b[5] % mod * a[6] % mod * a[7] % mod;
p[6] = a[1] % mod * a[2] % mod * b[3] % mod * a[4] % mod * a[5] % mod * a[6] % mod * a[7] % mod;
p[7] = a[1] % mod * b[2] % mod * a[3] % mod * b[4] % mod * b[5] % mod * a[6] % mod * b[7] % mod;
p[8] = a[1] % mod * a[2] % mod * a[3] % mod * a[4] % mod * a[5] % mod * a[6] % mod * a[7] % mod;
p[9] = a[1] % mod * a[2] % mod * a[3] % mod * a[4] % mod * b[5] % mod * a[6] % mod * a[7] % mod;
ll ans = 0;
for(int i = 0; i <= c; i ++){
int d = i;
int e = c - d;
ll temp = 1;
for(int j = 1; j <= 4; j ++){
int d1 = d % 10;
temp = temp * p[d1] % mod;
d = d / 10;
}
for(int j = 1; j <= 4; j ++){
int e1 = e % 10;
temp = temp * p[e1] % mod;
e = e / 10;
}
ans = (ans + temp) % mod;
}
cout << ans << endl;
}
int main(){
int t;
cin >> t;
while(t --){
solve();
}
return 0;
}
根据每个位置的灯泡亮的概率,计算出每个数字的概率,在计算出每中可能再相加

京公网安备 11010502036488号