#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#define ll long long
#define P pair<ll,ll>
#define mp make_pair
#define fi first
#define se second
#define N 400100
using namespace std;
ll n,m,T,faz[N],tt,d[N],fa[N][20],h[N],Q,K,S,last;
P tmp;
struct Bn
{
ll u,v,a;
bool operator < (const Bn &u) const
{
return a>u.a;
}
}bn[N];
priority_queue<P,vector<P>,greater<P> >pq;
vector<P>to[N];
ll ff(ll u){return u==faz[u]?u:faz[u]=ff(faz[u]);}
inline ll find(ll u,ll v)
{
ll i,t;
for(i=19;i>=0;i--)
{
t=fa[u][i];
if(h[t]>v) u=t;
}
return u;
}
int main()
{
ll i,j,p,q,t;
scanf("%lld",&T);
while(T--)
{
last=0;
memset(d,0x3f,sizeof(d));
memset(fa,0,sizeof(fa));
scanf("%lld%lld",&n,&m);
tt=n;
for(i=1;i<2*n;i++) faz[i]=i;
for(i=1;i<=m;i++)
{
scanf("%lld%lld%lld%lld",&bn[i].u,&bn[i].v,&t,&bn[i].a);
to[bn[i].u].push_back(mp(bn[i].v,t));
to[bn[i].v].push_back(mp(bn[i].u,t));
}
d[1]=0;
pq.push(mp(0,1));
for(;!pq.empty();)
{
tmp=pq.top();
pq.pop();
p=tmp.fi,q=tmp.se;
if(d[q]<p) continue;
for(i=0;i<to[q].size();i++)
{
t=to[q][i].fi;
if(p+to[q][i].se>=d[t]) continue;
d[t]=p+to[q][i].se;
pq.push(mp(d[t],t));
}
}
// for(i=1;i<=n;i++) cout<<d[i]<<" ";puts("");
sort(bn+1,bn+m+1);
for(i=1;i<=m;i++)
{
p=ff(bn[i].u),q=ff(bn[i].v);
if(p==q) continue;
tt++;
h[tt]=bn[i].a;
d[tt]=min(d[p],d[q]);
fa[p][0]=fa[q][0]=tt;
faz[p]=faz[q]=tt;
// cout<<" "<<tt<<" "<<p<<endl<<" "<<tt<<" "<<q<<endl;
}
for(i=1;(1 << i)<=tt;i++)
{
for(j=1;j<=tt;j++)
{
fa[j][i]=fa[fa[j][i-1]][i-1];
}
}
// for(i=1;i<=tt;i++) cout<<fa[i][1]<<" ";puts("");
scanf("%lld%lld%lld",&Q,&K,&S);
for(i=1;i<=Q;i++)
{
scanf("%lld%lld",&p,&q);
p=(p+K*last-1)%n+1;
q=(q+K*last)%(S+1);
p=find(p,q);
printf("%lld\n",d[p]);
last=d[p];
}
for(i=1;i<=n;i++) to[i].clear();
}
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 11.54 ms | 73 MB + 296 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #2 | 11.531 ms | 73 MB + 300 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #3 | 11.727 ms | 73 MB + 316 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #4 | 11.871 ms | 73 MB + 332 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #5 | 16.327 ms | 73 MB + 680 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #6 | 961.57 ms | 113 MB + 432 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #7 | 15.037 ms | 73 MB + 492 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #8 | 15.044 ms | 73 MB + 496 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #9 | 15.109 ms | 73 MB + 492 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #10 | 767.608 ms | 95 MB + 184 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #11 | 767.914 ms | 95 MB + 188 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #12 | 1.103 s | 115 MB + 28 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #13 | 1.102 s | 114 MB + 888 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #14 | 1.103 s | 114 MB + 288 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #15 | 16.886 ms | 73 MB + 684 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #16 | 16.859 ms | 73 MB + 688 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #17 | 1.104 s | 114 MB + 564 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #18 | 1.102 s | 114 MB + 860 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #19 | 1.737 s | 117 MB + 980 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #20 | 1.742 s | 117 MB + 492 KB | Accepted | Score: 5 | 显示更多 |