zoukankan      html  css  js  c++  java
  • Codeforces Round #206 (Div. 2) 部分题解

    传送门:http://codeforces.com/contest/355

    A:水题,特判0

    int k,d;
    int main(){
        //FIN;
        while(cin>>k>>d){
            if(d != 0){
                cout<<d;
                for(int i = 0 ; i < k-1 ; i++)
                    cout<<"0";
                cout<<endl;
            }else {
                if(k >= 2){
                    cout<<"No solution"<<endl;
                }else {
                    cout<<"0"<<endl;
                }
            }
        }
        return 0;
    }

    B:水题 直接加就行了

    LL c1,c2,c3,c4;
    int n,m;
    LL a[MAXN];
    LL b[MAXN];
    int main(){
        //FIN;
        while(cin>>c1>>c2>>c3>>c4){
            cin>>n>>m;
            for(int i = 0 ; i < n ; i++) cin>>a[i];
            for(int i = 0 ; i < m ; i++) cin>>b[i];
            LL suma = 0;
            for(int i = 0 ; i < n ; i++){
                if(c1 * a[i] >= c2) suma+=c2;
                else suma+=(c1*a[i]);
            }
            LL sumb = 0;
            for(int i = 0 ; i < m ; i++){
                if(c1 * b[i] >= c2) sumb+=c2;
                else sumb+=(c1*b[i]);
            }
            suma = min(suma,c3);
            sumb = min(sumb,c3);
            LL res = min(suma+sumb,c4);
            cout<<res<<endl;
        }
        return 0;
    }

    C:求一遍前缀和,枚举中间线,两边的差值就是没有进行交换位置的次数,计算一下取最小值就行了

    LL n,l,r,ql,qr;
    LL w[MAXN];
    LL pre[MAXN];
    LL suf[MAXN];
    int main(){
        while(cin>>n>>l>>r>>ql>>qr){
            LL sum = 0;
            for(int i = 0 ; i < n ; i++){
                cin>>w[i];
                sum += w[i];
            }
            for(int i = 0 ; i <= n ; i++){
                pre[i] = (i==0 ? 0 : pre[i-1]+w[i-1]);
                suf[i] = sum - pre[i];
            }
            LL res = LINF;
            for(int i = 0 ; i <= n ; i++){
                LL t = pre[i] * l + suf[i] * r;
                int j = n - i;
                if(i > j) t += (i - j - 1) * ql;
                if(i < j) t += (j - i - 1) * qr;
                res = min(res,t);
            }
            cout<<res<<endl;
        }
        return 0;
    }
  • 相关阅读:
    python--初识面向对象
    python--内置函数, 匿名函数
    P2249 【深基13.例1】查找
    P5143 攀爬者
    P1116 车厢重组
    P1059 明明的随机数
    P1152 欢乐的跳
    字符数组
    nth_element(取容器中的第n大值)
    费曼学习法
  • 原文地址:https://www.cnblogs.com/Felix-F/p/3400065.html
Copyright © 2011-2022 走看看