不如回头再看一眼题面
强制在线的规则:
GetQuery( &l, &r, t, last_ans, |E| )
IF t > 0 THEN
l <- (l + t * last_ans) Mod |E| + 1
r <- (r + t * last_ans) Mod |E| + 1
IF l > r THEN Swap( l, r )
你可能想当然地写成了这个样子:
while(q--) {
int l, r; scanf("%d %d", &l, &r);
l = (l + lastans * t) % m + 1;
r = (r + lastans * t) % m + 1;
if(l > r) swap(l, r);
......
}
改成这样就能过了:
while(q--) {
int l, r; scanf("%d %d", &l, &r);
if(t) {
l = (l + lastans * t) % m + 1;
r = (r + lastans * t) % m + 1;
}
if(l > r) swap(l, r);
......
}
然后你惊奇地发现:这样写错正好过掉了强制在线的点!
可能只有我这个申必才会在这个地方卡一个下午吧