噢莫加纳加加加 • 28天前
#include <bits/stdc++.h>
using namespace std;
int n,q;
long long a[200005];//数
char op[200005];//操作符号
long long p[200005];
long long d[200005];
long long m[200005];
long long mod=1000000007;
long long b=1;//倍数
int main()
{
cin>>n>>q;
for(int i=1;i<=q;i++){
cin>>op[i];
if (op[i]=='+'){
cin>>p[i]>>d[i];
}else{
cin>>m[i];
}
}
for(int i=q;i>=1;i--){//从后往前循环
if (op[i]=='*'){//如果是乘,b变成之前所有数的倍数
b*=m[i];
b%=mod;
}else {//加就加上数乘以它往后的所有倍数
a[p[i]]+=d[i]*b;
a[p[i]]%=mod;
}
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
using namespace std; int n,q; long long a[200005];//数 char op[200005];//操作符号 long long p[200005]; long long d[200005]; long long m[200005]; long long mod=1000000007; long long b=1;//倍数 int main() {
cin>>n>>q;
for(int i=1;i<=q;i++){
cin>>op[i];
if (op[i]=='+'){
cin>>p[i]>>d[i];
}else{
cin>>m[i];
}
}
for(int i=q;i>=1;i--){//从后往前循环
if (op[i]=='*'){//如果是乘,b变成之前所有数的倍数
b*=m[i];
b%=mod;
}else {//加就加上数乘以它往后的所有倍数
a[p[i]]+=d[i]*b;
a[p[i]]%=mod;
}
}
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
评论:
请先登录,才能进行评论