Atcoder ABC 384

2024 年 12 月 15 日 星期日
14

Atcoder ABC 384

好菜好菜好菜

A.aaaadaa

模拟

void solve(){
    int n;
    cin >> n;
    char s1,s2;
    cin >> s1 >> s2;
    string s;
    cin >> s;
    for(int i = 0;i < s.size();i++){
        if(s[i] != s1){
            s[i] = s2;
        }
    }
    cout << s << endl;
}

B.ARC Division

按题意模拟,先判断场次范围,再判断自己的分数

void solve(){
    int n,r;
    cin >> n >> r;
    int sum = r;
    for(int i = 1;i <= n;i++){
        int div,sc;
        cin >> div >> sc;
        if(div == 1){
            if(sum >= 1600 && sum <= 2799){
                sum += sc;
            }
        }else{
            if(sum >= 1200 && sum <= 2399){
                sum += sc;
            }
        }
    }
    cout << sum << endl;
}

C.Perfect Standings

用二进制处理,00001就是A,00011就是B,以此类推。 对于每一种排列组合用优先队列进行排序,可以写出代码如下

typedef pair<int,int> PII;
priority_queue<PII> q;
int w[6];
char ch[6]={'E','D','C','B','A'};
void solve(){
    for(int i=0;i<5;i++)cin >> w[i];
    reverse(w,w+5);
    for(int i=1;i<1<<5;i++)
    {
        int value=0;
        for(int j=0;j<5;j++)
            if(i>>j&1)value+=w[j];
        q.push({value,i});
    }

    while(q.size())
    {
        auto t=q.top();q.pop();
        for(int i=4;i>=0;i--)
            if(t.second>>i&1)cout<<ch[i];
        cout<<endl;
    }

}

D.Repeated Sequence

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...