Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
30784 申东铉 【S】T2 C++ 运行超时 0 2000 MS 6500 KB 1097 2024-07-30 14:38:27

Tests(0/18):


#include <bits/stdc++.h> #define int long long using namespace std; const int mod = 1e9 + 7; struct tr { int f; int a; int b; bool c; } t[200005]; int n,m; inline int fy (int d) { return (d % 2) ? -1 : 1; } signed main () { scanf("%lld %lld",&n,&m); t[1].f = 0; for (int i = 2;i <= n;i++) { cin >> t[i].f; scanf("%lld",&t[i].f); } for (int i = 1;i <= m;i++) { int o,x,a,b; scanf("%lld",&o); if (o < 1 || o > 3) { continue; } scanf("%lld",&x); if (o == 1) { scanf("%lld % lld",&a,&b); t[x].a = a; t[x].b = b; } if (o == 2) { int d = 0,ans = 0; for (int i = x;i;i = t[i].f) { ans += fy(d) * (t[i].a + t[i].b * d); ans = (ans + mod) % mod; d++; } printf("%lld\n",ans % mod); } if (o == 3) { for (int i = 1;i <= n;i++) { if (t[i].a == 0 && t[i].b == 0) { continue; } int b = 0; for (int j = i;j;j = t[j].f) { if (j == x) { b = 1; break; } } if (b) { t[i].a = 0; t[i].b = 0; } } } } return 0; }


测评信息: