Acwing第 66 场周赛完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 66 场周赛完结相关的知识,希望对你有一定的参考价值。

https://www.acwing.com/activity/content/2224/

目录

4606. 奇偶判断

#include<bits/stdc++.h>
using namespace std;
int main(void)

    string s; cin>>s;
    int temp=s[s.size()-1]-'0';
    cout<<temp%2;
    return 0;

4607. 字母补全

#include<bits/stdc++.h>
using namespace std;
int main(void)

    string s; cin>>s;
    for(int i=0;i<s.size();i++)
    
        if( (i+25) > (s.size()-1) ) continue;
        int cnt[32]=0,flag=1;
        for(int j=i;j<=i+25;j++)
        
            if(s[j]=='?') continue;
            else
            
                int c=s[j]-'A';
                if(cnt[c]) flag=0;
                cnt[c]++;
            
        
        if(flag)
        
            queue<char>q,ans;
            for(int j=0;j<i;j++) 
                if(s[j]=='?') ans.push('A');
                else ans.push(s[j]);
            for(int j=0;j<=25;j++) if(!cnt[j]) q.push('A'+j);
            for(int j=i;j<=i+25;j++) 
                if(s[j]=='?') 
                
                    ans.push(q.front());
                    q.pop();
                
                else ans.push(s[j]);
            for(int j=i+26;j<s.size();j++)
            
                if(s[j]=='?') ans.push('A');
                else ans.push(s[j]);
            
            while(ans.size()) cout<<ans.front(),ans.pop();
            return 0;
        
    
    cout<<-1;
    return 0;

4608. 整数分组

#include<bits/stdc++.h>
using namespace std;
int n,a[105],cnt1,cnt2,cnt3;
//cnt1 个数为1
//cnt2 个数为2
//cnt3 个数大于2
map<int,int>mp;
int main(void)

    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i],mp[a[i]]++;
    for(auto i=mp.begin();i!=mp.end();i++)
    
        int cnt=i->second;
        if(cnt==1) cnt1++;
        if(cnt==2) cnt2++;
        if(cnt>2)  cnt3++;
    
    
    if(cnt1&&cnt1%2==0)//只有1,且为偶数
    
        puts("YES");
        int st[105]=0,temp=0;
        for(int i=0;i<n;i++)
        
            if(mp[a[i]]==1) st[i]=1,temp++;
            if(temp==cnt1/2) break;
        
        for(int i=0;i<n;i++) 
            if(st[i]) cout<<"A";
            else cout<<"B";
        return 0;
    
    
    if(cnt2&&!cnt1&&!cnt3)//只有cnt2, 0/0 即可
    
        puts("YES");
        for(int i=0;i<n;i++) cout<<"A";
        return 0;
    
    
    if(cnt3&&!cnt1)//只有cnt3, 0/0 即可
    
        puts("YES");
        for(int i=0;i<n;i++) cout<<"A";
        return 0;
    
    
    if(cnt3&&cnt1)//1,3 从3中拿出一个来平分
    
        puts("YES");
        int st[105]=0,temp=0;
        for(int i=0;i<n;i++)
        
            if(mp[a[i]]>2) 
            
                st[i]=1,temp++;
                break;
            
        
        for(int i=0;i<n;i++)
        
            if(temp==(cnt1+1)/2) break;
            if(mp[a[i]]==1) st[i]=1,temp++;
        
        for(int i=0;i<n;i++) 
            if(st[i]) cout<<"A";
            else cout<<"B";
        return 0;
    
    puts("NO");
    return 0;

以上是关于Acwing第 66 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 66 场周赛完结

Acwing第 53 场周赛完结

Acwing第 31 场周赛完结

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结