头像

zhangshuo2008


访客:621

离线:1小时前


活动打卡代码 AcWing 892. 台阶-Nim游戏

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int res=0;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        if(i%2)res^=x;
    }
    if(res)puts("Yes");
    else puts("No");
}


活动打卡代码 AcWing 891. Nim游戏

#include<bits/stdc++.h>
using namespace std;
const int N=10100;
int main()
{
    int res=0;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        res^=x;
    }
    if(res==0)puts("No");
    else puts("Yes");
}


活动打卡代码 AcWing 890. 能被整除的数

#include<bits/stdc++.h>
using namespace std;
const int N=17;
int p[N];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<m;i++)cin>>p[i];
    int res=0;
    for(int i=1;i<1<<m;i++)
    {
        int cnt=0,t=1;
        for(int j=0;j<m;j++)
        {
            if(i>>j&1)
            {
                cnt++;
                if((long long)t*p[j]>n)
                {
                    t=-1;
                    break;
                }
                t=t*p[j];
            }
        }
        if(t!=-1)
        {
            if(cnt%2)res+=n/t;
            else res-=n/t;
        }
    }
    cout<<res<<endl;
}


活动打卡代码 AcWing 886. 求组合数 II

#include<bits/stdc++.h>
using namespace std;
const int N=100010,mod=1e9+7;
int fact[N],infact[N];
int qmi(int a,int k,int p)
{
    int res=1;
    while(k)
    {
        if(k&1)res=(long long)res*a%p;
        a=(long long)a*a%p;
        k>>=1;
    }
    return res;
}
int main()
{
    fact[0]=infact[0]=1;
    for(int i=1;i<N;i++)
    {
        fact[i]=(long long)fact[i-1]*i%mod;
        infact[i]=(long long)qmi(fact[i],mod-2,mod)%mod;
    }
    int n;
    cin>>n;
    while(n--)
    {
        int a,b;
        cin>>a>>b;
        cout<<(long long)fact[a]*infact[b]%mod*infact[a-b]%mod<<endl;;
    }
    return 0;
}


活动打卡代码 AcWing 885. 求组合数 I

#include<bits/stdc++.h>
using namespace std;
const int N=2010,mod=1e9+7;
int c[N][N];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<=i;j++)
        {
            if(!j)c[i][j]=1;
            else c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
        }
    }
    while(n--)
    {
        int a,b;
        cin>>a>>b;
        cout<<c[a][b]<<endl;
    }
    return 0;
}


活动打卡代码 AcWing 875. 快速幂

#include<bits/stdc++.h>
using namespace std;
void qmi(int a,int b,int p)
{
    int res=1;
    while(b)
    {
        if(b&1)res=(long long)res*a%p;
        a=(long long)a*a%p;
        b>>=1;
    }
    cout<<res<<endl;
}
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int a,b,p;
        cin>>a>>b>>p;
        qmi(a,b,p);
    }
    return 0;
}


活动打卡代码 AcWing 873. 欧拉函数

#include<bits/stdc++.h>
using namespace std;
void phi(int x)
{
    int res=x;
    for(int i=2;i<=x/i;i++)
    {
        if(x%i==0)
        {
            res=res/i*(i-1);
            while(x%i==0)x/=i;
        }
    }
    if(x>1)res=res/x*(x-1);
    cout<<res<<endl;
}
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int a;
        cin>>a;
        phi(a);
    }
}


活动打卡代码 AcWing 872. 最大公约数

```

include[HTML_REMOVED]

using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int n;
cin>>n;
while(n–)
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
}
}



活动打卡代码 AcWing 870. 约数个数

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int main()
{
    int n;
    cin>>n;
    map<int,int>h;
    while(n--)
    {
        int x;
        cin>>x;
        for(int i=2;i<=x/i;i++)
        {
            while(x%i==0)
            {
                h[i]++;
                x/=i;
            }
        }
        if(x>1)h[x]++;
    }
    int res=1;
    for(map<int,int>::iterator it=h.begin();it!=h.end();it++)
    {
        res=(long long)res*(it->second+1)%mod;
    }
    cout<<res<<endl;
}


活动打卡代码 AcWing 869. 试除法求约数

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int a;
        cin>>a;
        vector<int>v;
        for(int i=1;i<=a/i;i++)
        {

            if(a%i==0)
            {
                v.push_back(i);
                if(i!=a/i)v.push_back(a/i);
            }

        }
        sort(v.begin(),v.end());
        for(int i=0;i<v.size();i++)
            {
                cout<<v[i]<<" ";
            }
            cout<<endl;
    }
}