0
点赞
收藏
分享

微信扫一扫

2022牛客寒假算法基础集训营2 K C H E F A I (7/13)

史值拥 2022-01-27 阅读 51

2022牛客寒假算法基础集训营2 K C H E F A I (7/13)

K 小沙的步伐

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
int sum[10];
signed main(){
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]-'5'!=0){
            sum[s[i]-'0']++;
            sum[5]++;
        }
    }
    for(int i=1;i<=9;i++)cout<<sum[i]<<' ';
    cout<<endl;
    return 0;
}

C 小沙的杀球

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
signed main(){
    int x,a,b;
    cin>>x>>a>>b;
    string s;
    cin>>s;
    int res=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='1'&&x>=a){
            x-=a;
            res++;
        }
        else{
            x+=b;
        }
    }
    cout<<res<<endl;
    return 0;
}

H 小沙的数数

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int mod=1e9+7;
int len(int x){
    int res=0;
    while(x){
        if(x&1)res++;
        x>>=1;
    }
    return res;
}
int qmi(int n,int m){
    int res=1;
    while(m){
        if(m&1)res=res*n%mod;
        n=n*n%mod;
        m>>=1;
    }
    return res%mod;
}
signed main(){
    int n,m;
    cin>>n>>m;
    m=len(m);
    n%=mod;
    int x=qmi(n,m);
    cout<<x<<endl;
    return 0;
}

E 小沙的长路

在这里插入图片描述

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
signed main(){
    int n;
    cin>>n;
    if(n==1){
        cout<<0<<' '<<0<<endl;
    }
    else if(n==2){
        cout<<1<<' '<<1<<endl;
    }
    else{
        cout<<n-1<<' ';
        if(n%2==0){
            int x=(n-2)/2;
            cout<<((n-1)*n/2-x)<<endl;
        }
        else{
            cout<<((n-1)*n/2)<<endl;
        }
    }
    return 0;
}

F 小沙的算数

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1e6+10;
const int mod=1e9+7;
char op[N];
int a[N];
int b[N];
int sum[N];
int mul(int a,int b){
    return a%mod*b%mod;
}
int sub(int a,int b){
    int x=a%mod-b%mod;
    if(x<0)return (x+mod)%mod;
    return x;
}
int qmi(int a,int b){
    int res=1;
    while(b){
        if(b&1)res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
signed main(){
    int n,q;
    cin>>n>>q;
    for(int i=1;i<=n-1;i++)cin>>op[i];
    for(int i=1;i<=n;i++)cin>>a[i];
    int cnt=1;
    b[1]=cnt;
    sum[cnt]=a[1];
    int res=0;
    for(int i=1;i<=n-1;i++){
        if(op[i]=='+'){
            cnt++;
            b[i+1]=cnt;
            sum[cnt]=a[i+1];
        }
        else{
            b[i+1]=cnt;
            sum[cnt]=mul(sum[cnt],a[i+1]);
        }
    }
    for(int i=1;i<=cnt;i++){
        res=(res+sum[i])%mod;
    }
    while(q--){
        int x,y;
        cin>>x>>y;
        int xcnt=b[x];
        res=sub(res,sum[xcnt]);
        sum[xcnt]=mul(sum[xcnt],qmi(a[x],mod-2));
        sum[xcnt]=mul(sum[xcnt],y);
        res=(res+sum[xcnt])%mod;
        a[x]=y;
        cout<<res<<endl;
    }
    return 0;
}

A 小沙的炉石

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
signed main(){
    int a,b;
    cin>>a>>b;
    int q;
    cin>>q;
    while(q--){
        int x;
        cin>>x;
        int l=1;int r=min(a,b+1);
        while(l<r){
            int mid=l+r+1>>1;//进攻次数
            int left=mid*mid;//进攻伤害下限
            int right=mid*b+(mid+1)*mid/2;//伤害上限
            if(left>x)r=mid-1;
            else l=mid;
        }
        int left=l*l;
        int right=l*b+(l+1)*l/2;
        if(left<=x&&right>=x)cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

I 小沙的构造

  • 参考代码:
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long 
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
string s="\"!'*+-.08:=^_WTYUIOAHXVM|";
string s1="<\\[{(";
string s2=">/]})";
signed main(){
    int n,m;
    cin>>n>>m;
    int cnt=0;
    if(m>=36){
        cout<<"-1"<<endl;
        return 0;
    }
    string end="";
    if(n%2){
        m--;
        end=s[cnt];
        cnt++;
    }
    int cnt2=0;
    while(cnt2<5&&m>=2){
        m-=2;
        end=s1[cnt2]+end+s2[cnt2];
        cnt2++;
    }
    while(cnt<25&&m>=1){
        m--;
        end=s[cnt]+end+s[cnt];
        cnt++;
    }
    if(end.size()>n){
        cout<<"-1"<<endl;
    }
    else{
        cnt=n-end.size();
        while(cnt>=2){
            cnt-=2;
            end=end[0]+end+end[end.size()-1];
        }
        cout<<end<<endl;
    }
    return 0;
}
举报

相关推荐

0 条评论