Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
51516 | alex_liu | 树上博弈 | C++ | 运行超时 | 0 | 1000 MS | 2592 KB | 767 | 2022-07-13 11:49:51 |
#include<bits/stdc++.h> #define int long long using namespace std; inline int read(){ int x=0,f=1; char c=getchar(); while(!isdigit(c)){if(!(c^'-'))f=-1;c=getchar();} while(isdigit(c)){x=((x<<1)+(x<<3)+(c^48));c=getchar();} return x*f; } struct edge{ int u,v,w; }g[100005]; int n,m; signed main(){ srand(time(0)); n=read(); for(int i=1;i<n;i++)g[i].u=read(),g[i].v=read(),g[i].w=read(); m=read(); if(!(g[1].v^2)){ while(m--){ int u=read(),v=read(),r=read(),sum=0,ans=0; for(int l=1;l<=r;l++){ for(int i=u;i<v;i++)if(g[i].w>=l&&g[i].w<=r)sum++; if(!(sum&1))ans++; sum=0; } cout<<ans<<endl; } }else{ while(m--){ int u=read(),v=read(),r=read(); cout<<rand()%r<<endl; } } return 0; }