zoukankan      html  css  js  c++  java
  • Codeforces 301A. Yaroslav

    Codeforces Tutorial

    A. Yaroslav and Sequence

    Problem Analysis

    1、当n为奇数的时候,变换n个可以一次增加或减少1个负数,这样可以直到有n个负数,然后全变为整数ok
    2、当n为偶数的时候,变换n个可以一次增加或减少2个负数,所以当有偶数个负数时都可以变为正数,当有奇数个负数时,最大和为(绝对值最小的那个为负数,其余的都为正数)。

    用例子解释一下上面的内容。

    • n为奇数
      不妨设n=5,有序列-1,-1,-1,-1,-1,-1,-1,-1,-1。可以发现,始终可以做到使得负数的个数小于n/2。序列变为1,1,1,1,1,-1,-1,-1,-1。然后选取n/2+1个正数,n/2个负数,就可以增加一个负数。上例就是是选择312-1。序列变为1,1,1,1,-1,-1,-1,-1,-1。然后一步变为全正。
    • n为偶数
      思路与奇数一样,不同的是对n的划分,n只能划分为n/2-1n/2+1

    Acepted Code

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<cmath>
    #include<map>
    #include<istream>
    #include<cassert>
    #include<set>
    #define DEBUG(x) cout<<#x<<" = "<<x<<endl
    #define DEBUG2(x,y) cout<<#x<<" = "<<x<<" , "
    <<#y<<" = "<<y<<endl
    using namespace std;
    typedef long long ll;
    const int MAXN=300;
    int n;
    int a[MAXN];
    int main()
    {
    //    freopen("in.txt","r",stdin);
        scanf("%d",&n);
        for(int ii=0;ii<2*n-1 ;ii++ ){
            scanf("%d",&a[ii]);
        }
        int ans=0;
        if(n%2){
            for(int ii=0;ii<2*n-1 ;ii++ ){
                ans+=abs(a[ii]);
            }
        }
        else {
            int cnt=0;
            int absmin=1e9;
            for(int ii=0;ii<2*n-1 ;ii++ ){
                if(a[ii]<0)cnt++;
                absmin=min(absmin,abs(a[ii]));
                ans+=abs(a[ii]);
            }
            if(cnt%2)ans-=2*absmin;
        }
        printf("%d
    ",ans);
    }
    

    Wrong Answer Cases

    What I Learn

    • 奇偶性遇到的比较多

    Reference

    https://blog.csdn.net/xh_reventon/article/details/8892546

  • 相关阅读:
    bzoj 2763: [JLOI2011]飞行路线
    bzoj 2761: [JLOI2011]不重复数字
    bzoj 2744: [HEOI2012]朋友圈
    bzoj 2743: [HEOI2012]采花
    bzoj 2730: [HNOI2012]矿场搭建
    bzoj 2705: [SDOI2012]Longge的问题
    抗DDOS攻击
    kali安装后配置
    Kali更新源,亲测目前可用的源
    kali安装及配置ssr客户端
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/10945531.html
Copyright © 2011-2022 走看看