0
点赞
收藏
分享

微信扫一扫

第8期:2021牛客寒假算法基础集训营1

前行的跋涉者 2022-01-27 阅读 66
算法

A-串

//dp待补
#include<iostream>
using namespace std;
#define int long long
const int N=1e9+7;
signed main(){
    int n;
    cin>>n;
    int dp[n+1][3];
    int ans=0;
    dp[1][0]=25,dp[1][1]=1,dp[1][2]=0;
    for(int i=2;i<=n;i++){
        dp[i][0]=dp[i-1][0]*25;
        dp[i][0]%=N;
        dp[i][1]=dp[i-1][0]+dp[i-1][1]*25ll%N;
        dp[i][1]%=N;
        dp[i][2]=dp[i-1][2]*26ll%N+dp[i-1][1];
        dp[i][2]%=N;
        ans=(ans+dp[i][2])%N;
    }
    cout<<ans<<endl;
}

B-括号

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    int k;
    cin>>k;
    if(k==0){ cout<<")\n"; return 0; }
    int n=(int)sqrt(k);
    int d=k-n*n;
    int d1=d/n,d2=d%n;
    for(int i=1;i<=n;i++) cout<<"(";
    for(int i=1;i<=n+d1-d2;i++) cout<<")";
    if(d2!=0)cout<<"(";
    for(int i=1;i<=d2;i++) cout<<")";
    cout<<endl;
    return 0;
}

F 对答案一时爽

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    int n,ans=0; char A[100],B[100];
    cin>>n;
    for(int i=0;i<n;i++) cin>>A[i];
    for(int i=0;i<n;i++) cin>>B[i];
    for(int i=0;i<n;i++){
        if(A[i]==B[i]) ans+=2;
        else ans++;
    }
    cout<<ans<<" 0\n";
    return 0;
}

I-限制不互素对的排列

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    int n,k,i;
    cin>>n>>k;
    if(k<n/2){
        cout<<"2";
        for(i=2;i<=k+1;i++)
            cout<<" "<<2*i;
        for(i=0;i<k+1;i++)
            cout<<" "<<2*i+1;
        for(i=2*(k+1)+1;i<=n;i++)
            cout<<" "<<i;
    }else{
        if(n<=5)
            cout<<"-1";
        else if(n==6)
            cout<<"5 3 6 2 4 1";
        else if(n==7)
            cout<<"5 3 6 2 4 1 7";
        else if(n==8)
            cout<<"3 6 4 2 8 1 5 7";
        else{
            cout<<"2";
            for(i=2;i<=k;i++)
                cout<<" "<<2*i;
            if(2*(i-1)%9==0)
                cout<<" 9 1 3 5 7";
            else cout<<" 9 3 1 5 7";
            for(i=5;i<k;i++)
                cout<<" "<<2*i+1;
            if(n&1 && n>9)
                cout<<" "<<2*i+1;
        }
    }
    cout<<endl;
    return 0;
}
举报

相关推荐

0 条评论