Educational Codeforces Round 83 (Rated for Div. 2)

B. Bogosort

水题,把数组降序排列输出就行了

#include<bits/stdc++.h>
using namespace std;
const int maxn=101;
int a[maxn];

int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        sort(a+1,a+1+n,greater<int>());
        for(int i=1;i<=n;i++)
            printf("%d ",a[i]);
    	printf("
");
    }
    return 0;
}

C. Adding Powers

比较水,知道数制转换和十进制数展开公式就能做

[D=ΣKi*P^i ]

其中K为数码,P为权码。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=31;
const int maxn0=1e6;
ll a[maxn];
int vis[maxn0];

bool solve(int n,int k)
{
    for(int i=1;i<=n;i++){
        ll tmp=a[i];
        if(!tmp)
            continue;
        for(int j=0;;j++)
        {
            ll res=tmp%k;
            tmp/=k;
            if(res!=0&&res!=1)
                return false;
            if(res==1){
                if(vis[j])
                    return false;
                vis[j]++;
            }
            if(!tmp)
                break;
        }
    }
    return true;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        memset(vis,0,sizeof(vis));
        int n,k;
        scanf("%d%d",&n,&k);
        int f0=0;
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
        }
        if(solve(n,k))
            printf("YES
");
        else
            printf("NO
");
    }
    return 0;
}

D. Count the Arrays

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=998244353;
ll fpm(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}

int main()
{
    ll n,m;scanf("%lld%lld",&n,&m);
    if(n<=2||m<=2){
        printf("0
");
        return 0;
    }
    ll ans=1;
    for(ll i=1;i<=m;i++) ans=ans*i%mod;
    ll res=1;
    for(ll i=1;i<=n-1;i++) res=res*i%mod;
    for(ll i=1;i<=m-n+1;i++) res=res*i%mod;
    ans=ans*(n-2)%mod;
    ans=ans*fpm(res,mod-2)%mod;
    ans=ans*fpm(2,n-3)%mod;
    printf("%lld
",ans);

    return 0;
}
原文地址:https://www.cnblogs.com/DrumWashingMachine-Lhy-NoobInCsu/p/12470220.html