zoukankan      html  css  js  c++  java
  • Codeforces Round #661 (Div. 3)【ABCD】(题解)

    涵盖知识点:思维

    比赛链接:传送门

    A - Remove Smallest

    题意: 每次选择两个相差(1)以内的数字删除较小的一个,若两数相等,则随机删除一个。问最后能否删到只剩一个数字。
    题解: 排序一下观察是否连续即可。
    Accept Code:

    #include <bits/stdc++.h>
    using namespace std;
    int a[110];
    int main(){
        int t;cin>>t;
        while(t--){
            int n;
            cin>>n;
            for(int i=0;i<n;i++)cin>>a[i];
            sort(a,a+n);
            for(int i=1;i<n;i++){
                if(a[i]-a[i-1]>1){
                    puts("NO");
                    goto st;
                }
            }
            puts("YES");
            st:;
        }
        return 0;
    }
    

    B - Gifts Fixing

    题意: (n)份物品,每份都有(a,b)两种值。现在每次操作可以选择将其中一份的(a)减一或者(b)减一或者同时减一。问至少几次操作可以使得所有物品的(a)值相同,且所有物品的(b)值相同。
    题解: 很容易看出来最后的结果一定是将(a)减为所有(a)的最小值,(b)也同理,那么贪心,同时有相减需求的同时相减,否则单独减即可。
    Accept Code:

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int maxn=110;
    const int inf=1e9+10;
    int a[maxn],b[maxn];
    int main(){
        int t;cin>>t;
        while(t--){
            int n;
            cin>>n;
            int ma=inf,mb=inf;
            for(int i=0;i<n;i++)cin>>a[i],ma=min(ma,a[i]);
            for(int i=0;i<n;i++)cin>>b[i],mb=min(mb,b[i]);
            ll ans=0;
            for(int i=0;i<n;i++){
                int aa=a[i]-ma,bb=b[i]-mb;
                ans+=max(aa,bb);
            }
            cout<<ans<<"
    ";
        }
        return 0;
    }
    

    C - Boats Competition

    题意:(n)个数分成尽可能多的若干二人组,使得每组的数值之和都相等。
    题解: 直接暴力(0)(100)的所有可能性。
    Accept Code:

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int maxn=110;
    const int inf=1e9+10;
    int cnt[maxn];
    int main(){
        int t;cin>>t;
        while(t--){
            int n;
            cin>>n;
            memset(cnt,0,sizeof cnt);
            for(int i=0,x;i<n;i++){
                cin>>x;
                cnt[x]++;
            }
            int ans=0;
            for(int i=0;i<=100;i++){
                int res=0;
                for(int j=1;j<=i/2;j++)res+=min(cnt[j],cnt[i-j]);
                if(i%2==0)res+=cnt[i/2]/2-cnt[i/2];
                ans=max(ans,res);
            }
            cout<<ans<<"
    ";
        }
        return 0;
    }
    

    D - Binary String To Subsequences

    题意: 将一个01串拆为若干个子序列,使得每个子序列中不含连续的1和0
    题解: 贪心,队列维护一下当前子序列的序号,当且仅当之前没有构造出来符合条件的时候增加序列的序号。
    Accept Code:

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int maxn=2e5+10;
    const int inf=1e9+10;
    int ans[maxn];
    int main(){
        int t;cin>>t;
        while(t--){
            int n;
            cin>>n;
            string s;
            cin>>s;
            int cnt=0;
            ans[0]=1;
            queue<int> q0,q1;
            for(int i=0;i<n;i++){
                int tmp;
                if(s[i]=='1'){
                    if(q0.empty()){
                        cnt++;
                        q1.push(cnt);
                        tmp=cnt;
                    }
                    else{
                        tmp=q0.front();
                        q0.pop();
                        q1.push(tmp);
                    }
                }
                else{
                    if(q1.empty()){
                        cnt++;
                        q0.push(cnt);
                        tmp=cnt;
                    }
                    else{
                        tmp=q1.front();
                        q1.pop();
                        q0.push(tmp);
                    }
                }
                ans[i]=tmp;
            }
            cout<<cnt<<"
    ";
            for(int i=0;i<n;i++)cout<<ans[i]<<" ";
            cout<<"
    ";
        }
        return 0;
    }
    
  • 相关阅读:
    C#获取远程客户端IP
    .NET 中的对象序列化
    架构师
    如何在删除并重新安装 IIS 之后修复 IIS 映射
    Web.config里设置upload文件大小限制的属性是什么来着?在哪个Section里?
    ASP.net security
    如何优化JavaScript脚本的性能
    关于session丢失原因的分析
    浅谈对象的序列化(Serialize)
    微软软件架构师培训
  • 原文地址:https://www.cnblogs.com/charles1999/p/13454245.html
Copyright © 2011-2022 走看看