zoukankan      html  css  js  c++  java
  • Codeforces Round #638 (Div. 2)(A~B)

    A - Phoenix and Balance

    题意:有n个硬币,每一个硬币符合以下关系:21,22.....2n。其中n是偶数,要你将这堆硬币分为两堆,是两堆的重量之差的绝对值最小。

    题解:这道题是一个规律题,同时也是一道数论题,解法有很多。这里利用一个数学结论:21+22+23+24+2n-1=2n-1,也就是说2n比前面的和还大,这个时候,我们将前面的n/2-1个数和分给第一个组,后面的分给下一个组,两者之差为最小值。

    代码:

    #include<iostream>
    #define ll long long
    using namespace std;
    int main(){
        int n,t;
        cin>>n;
        while(n--){
            cin>>t;
            ll ans=1<<t;
            for(int i=1;i<=t-1;i++){
                if(i<t/2){
                    ans=ans+(1<<i);
                }else{
                    ans=ans-(1<<i);
                }
            }
            cout<<ans<<endl;
        }
        return 0;
    }

    B - Phoenix and Beauty

    题意:给你一个序列,要你向其中插入若干个数实其成为“完美数列”。

    题解:这个题是一个构造里面的接单题,关键是找到不可构造的条件,原数列数字的种类数--这个是关键。

    代码:

    #include<iostream>
    #include<set>
    #include<vector>
    using namespace std;
    int main(){
        int t,n,k;
        cin>>t;
        int temp;
        while(t--){
            cin>>n>>k;
            set<int> se;
            vector<int> ve;
            se.clear();
            ve.clear();
            for(int i=0;i<n;i++){
                cin>>temp;
                se.insert(temp);
            }
            if(se.size()>k){
                cout<<-1<<endl;
                continue; 
            }
            set<int>::iterator it;
            for(it=se.begin();it!=se.end();it++){
                ve.push_back(*it);
            }
            int len=ve.size();
            if(len==k){
            }else{
                for(int i=0;i<k-len;i++){
                    ve.push_back(1);
                }
            }
            cout<<n*ve.size()<<endl;
            for(int i=0;i<n;i++){
                for(int j=0;j<ve.size();j++){
                    cout<<ve[j];
                    if(i==n-1&&j==ve.size()-1){
                        cout<<endl;
                    }else{
                        cout<<" ";
                    }
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    C# 文本,图片 与 Base64的相互转换
    vue3.x 中的自定义组件及使用
    vue 的TodoList 小Demo
    vue中的条件渲染 v-show、v-if、v-else、v-else-if
    vue 使用$refs获取表单内容及v-model双向数据绑定
    python-异常处理&操作数据库&网络编程
    python-接口开发
    python-数据库&邮件
    python-函数和模块
    python-函数&list&dic&集合&文件读取
  • 原文地址:https://www.cnblogs.com/blogxsc/p/12913784.html
Copyright © 2011-2022 走看看