CF45B题解
前言
复杂度是玄学的,过是能过的。(后面滴保持队型)
思路
可以用 (暴力),再用一个
对于每个消息的热度
代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, m, g[N], v[N], b, res, ma[N];
signed main()
{
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; i++)scanf("%d", &g[i]);
for(int i = 1; i <= m; i++)scanf("%d", &v[i]);
for(int i = 1; i <= m; i++)
{
int a = (v[i] + res - 1) % n + 1;
scanf("%d", &b); res = 0;
while(ma[a] < b and b)
{
if(!ma[a])res++;
ma[a] = b--; a = g[a];
}
printf("%d\n", res);
}
return 0;
}