T3 最大MEX值

代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    //freopen("C.in","r",stdin);
    //freopen("C.out","w",stdout);
    int n,k;
    cin>>n>>k;
    vector<int> a(n);
    unordered_set<int> e;
    for (int i=0;i<n;i++){
        cin>>a[i];
        e.insert(a[i]);
    }
    int mex=0;
    while(e.count(mex)&&mex<k){
        mex++;
    }
    cout<<mex;
    return 0;
}

T4 标记

思路:需要推数学公式。

代码:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
	freopen("D.in","r",stdin);
    freopen("D.out","w",stdout);
	int T;
	cin>> T;
	while(T--)
	{
		ll N,D,K;
		cin>> N >> D >> K;
		K--;
		ll g = __gcd(N,D);
		ll m = N/g; 
		ll a = K/m;
		ll b = K%m;
		ll ans = (a+b*D)%N;
		cout<< ans << '\n';
	}

	return 0;
}