4 条题解

  • 0
    @ 2025-9-15 16:43:52

    不用线段树看这里

    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
    上传者