T1求余来咯

思路

直接模拟即可(很水

正确代码

    #include<bits/stdc++.h>
    using namespace std;
    int a[3010];
    int main()
    {
        freopen("mod.in","r",stdin);
        freopen("mod.out","w",stdout);
        long long n,l,r,k,minn=2e9;
        cin>>n>>l>>r; 
        for(int i=1;i<=n;i++) cin>>a[i];
        for(int i=l;i<=r;i++)
        {
            int sum=0;
            for(int j=1;j<=n;j++) sum+=a[j]%i;
            if(sum<minn)
            {
                minn=sum;
                k=i;
            }
        }
        cout<<k;
        return 0;
    }

T2乘法考验

错因 没开long long((╬▔皿▔)╯)

思路

a*b末尾有k个0

那么a*b%1ek==0

a*b就含有1ek的质因子

b要越小,就只能是a里没有1ek的乘积,就是1ek/gcd(1ek,a)

正确代码

    #include<bits/stdc++.h>
    using namespace std;
    long long gcd(long long a,long long b)
    {
        if(!b) return a;
        else return gcd(b,a%b);
    }
    long long m(int a,int b)
    {
        long long ans=1;
        for(int i=1;i<=b;i++) ans*=a;
        return ans; 
    }
    int main()
    {
        freopen("mul.in","r",stdin);
        freopen("mul.out","w",stdout);
        long long t,a,k,cnt=0,ans=1;
        cin>>t;
        for(int i=1;i<=t;i++)
        {
            cin>>a>>k;
            long long sum=m(10,k);
            cout<<sum/gcd(a,sum)<<endl;
        }
        return 0;
    }

T3回文树

暂无

T4构造题

错因

是打表的(呵呵!)

思路

第一个点 的对数是n1n-1

第二个点 的对数是n2n-2

第三个点 的对数是n3n-3

....

总的对数应该是n(n1)/2n*(n-1)/2

顺序对和逆序对分别应是 n(n1)/4n*(n-1)/4

由于总的对数确定那么 只用得到n*(n-1)/4个顺序对就可以了

由于字典序要小,那么小的数尽可能

直到放不了为止。

在放一个n-剩余顺序对数g

再将剩余的逆序摆放

正确代码

    #include<bits/stdc++.h>
    using namespace std;
    long long n,sum,sy,z;
    long long  qm(long long x)
    {
    	long long i=1;
    	while(x>=(n-i))
    	{
    		x=x-n+i;
    		cout<<i<<" ";
    		i++;
    		z++;
    	}
    	return x;
    }
    int main()
    {
    	freopen("gz.in","r",stdin);
    	freopen("gz.out","w",stdout);
    	cin>>n;
    	sum=n/4*(n-1);
    	sy=qm(sum);	
    	cout<<n-sy<<" ";
    	z++;
    	for(long long i=n;z<=n;i--,z++)
    	{
    		if(i==n-sy) continue;
    		cout<<i<<" ";
    	}
    	return 0;
    }
    ```