4 条题解
-
0
不用线段树看这里namespace syr { const ll N = 1e6+10; ll n, k, a, b; ll l[N]; bool v[N*10]; priority_queue <ll> q; vector <ll> r[N]; ll mol (ll x, ll y) { if (x>y) x -= y; return x; } void work() { cin>>n>>k>>a>>b; ll st = max(1, k-n+1); for (ll i=st; i<=k; i++) { ll x = (i*a+b) %n + 1; ll y = (i*b+a) %n + 1; if (x>y) swap(x, y); l[x] = i, r[y+1].push_back(i); } q.push(0); for (ll i=1; i<=n; i++) { for (ll j=0; j<r[i].size(); j++) v[r[i][j]] = 1; while (v[q.top()]) q.pop(); if (l[i]) q.push(l[i]); cout<<q.top()<<'\n'; } } }
信息
- ID
- 392
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 20
- 已通过
- 8
- 上传者