General0826 @ 2024-10-22 19:05:29
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=5e5+5,P=998244353;
struct dian{
ll num,x,w;
}sxf[N];
ll l,r,m,n,op,x,w;
ll lu[N],a[N],que[N],sum[N],cs[N],yux[N],mt[N],inc[N],inf[N],k,qj;
vector<ll> c[N],f[N];
ll q_pow(ll a,ll b){ //快速幂 T
ll num=a,cnt=1,op=b;
return a;
while(b){
if(b&1) cnt=1ll*(cnt*num)%P;
num=1ll*(num*num)%P;
b>>=1;
}
}
void tfort(vector<ll> c[],ll inc[]){ //T
l=1,r=0;
for(ll i=1;i<=m;i++){
sum[i]=sxf[i].num;
if(inc[i]==0){
que[++r]=i;
}
}
//将一个函数的基本贡献算上 T
while(l<=r){
ll v=que[l];
for(auto i:c[v]){
if(inc[i]!=0){
--inc[i];
sum[i]=(sum[v]*sum[i])%P;
//转移
if(inc[i]==0){
que[++r]=i;
}
}
}
l++;
}
}
void topsort(ll inc[]){
memset(cs,0,sizeof(cs));
l=1,r=1;
que[1]=m+1;
cs[m+1]=sum[m+1]=1; // 将m+1加入
while(l<=r){
ll v=que[l],mk=cs[v];
lu[sxf[v].x]=(lu[sxf[v].x]+(sxf[v].w*cs[v])%P)%P;
//将对单点的贡献算上
for(ll i=(ll)(c[v].size())-1;i>=0;i--){
ll nxt=c[v][i];
if(inc[nxt]!=0){
//
inc[nxt]--;
if(inc[nxt]==0){
que[++r]=nxt;
} //top部分
// yux[nxt]+=yux[v]; //将使用次数加上
cs[nxt]=(cs[nxt]+mk)%P;//将后缀乘加上
mk=(mk*sum[nxt])%P;
//算出 他对后缀乘的贡献
}
}
if(l==1) //全局贡献
qj=mk;
l++;
}
}
int main(){
cin>>n;
for(ll i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for(ll i=1;i<=m;i++){
cin>>op;
if(op==1){
cin>>x>>w;
sxf[i]=(dian){1,x,w};
}
else if(op==2){
cin>>w;
sxf[i]=(dian){w,0,0};
}
else{
cin>>x;
sxf[i]=(dian){1,0,0};
for(ll j=1;j<=x;j++){
cin>>w;
c[i].emplace_back(w); //正边
inc[w]++;
f[w].emplace_back(i); //反边
inf[i]++;
}
}
}
// 输入
tfort(f,inf);
//反向top,算出每个函数对积的贡献
cin>>k;
for(ll i=1;i<=k;i++){
cin>>x;
c[m+1].emplace_back(x);
inc[x]++;
}
//输入,并建边将m+1(main)当做一个函数处理
// for(lli=0;i<=m;i++){
// cout<<'^'<<i<<' '<<sum[i]<<'\n';
// for(llj=0 ;j<c[i].size();j++){
// cout<<c[i][j]<<' ';
// }cout<<'\n';
// }
topsort(inc);
//处理
for(ll i=1;i<=n;i++){
cout<<(a[i]*qj%P+lu[i])%P<<' ';
}
//输出
return 0;
}
// cout<<v<<' '<<sum[v]<<'\n';
// cout<<v<<' '<<yux[v]<<' '<<cs[v]<<'\n';
// if(sxf[v].w *cs[v]*yux[v]!=0){
// cout<<sxf[v].w *cs[v]*yux[v]<<" "<<sxf[v].x<<'\n';
// }
/*
*/
by wangxiaoyi1118 @ 2024-10-22 19:05:52
qp
by lihongqian__int128 @ 2024-10-22 19:06:16
@General0826 哇,是 Gengen!
虽然我不会,只有 10pts
by wangxiaoyi1118 @ 2024-10-22 19:06:41
莱德不会又要自救吧
by Jerrycyx @ 2024-10-22 19:09:07
莱德,需要我们
by yangyafan @ 2024-10-22 19:10:07
莱德,需要我们
by Ace_FutureDream @ 2024-10-22 19:10:54
@General826
@General00826
@General000826
@General0000826
@General00000826
@General000000826
莱德,需要你们
by z_z_b_ @ 2024-10-22 19:11:19
莱德,需要我们
by jrzhr @ 2024-10-22 19:11:46
莱德,需要我们
by Fish_ht @ 2024-10-22 19:13:39
@General0826
@General00826
@General000826
@General0000826
@General00000826
@General000000826
莱德,需要你们。
by ycyxh1 @ 2024-10-22 19:21:43
呼叫Gengen队
@General0826
@General00826
@General000826
@General0000826
@General00000826
@General000000826
莱德,需要你们。