zoukankan      html  css  js  c++  java
  • noip普及组2018T2 龙虎斗

    原题地址

    p1位置加s1个工兵,先算一遍双方势力之差,然后依次枚举把s2个工兵放在所有的兵营里,取最小就行了

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    long long n,m,sum1,sum2,minn,mink,a[100010],p,s1,s2;
    int read(){
        int x=0;
        int mk=1;
        char ch=getchar();
        while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
        if(ch=='-'){
            mk=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            x=x*10+ch-48;
            ch=getchar();
        }
        return x*mk;
    }//快速读入
    int main(){
        n=read();
        for(int i=1;i<=n;i++)
            a[i]=read();
        m=read();p=read();s1=read();s2=read();//读入
        a[p]+=s1;//累计p的位置
        for(int i=1;i<=m-1;i++)
            sum1+=a[i]*(m-i);
        for(int i=m+1;i<=n;i++)
            sum2+=a[i]*(i-m);//累计和
        minn=abs(sum2-sum1);
        mink=m;//放在第m的位置
        if(sum1<sum2){
            for(int i=1;i<m;i++)
                if(minn>abs(sum2-(sum1+s2*(m-i)))){
                    minn=abs(sum2-(sum1+s2*(m-i)));
                    mink=i;
                }//放在左边
        }else{
            for(int i=m+1;i<=n;i++)
                if(minn>abs(sum1-(sum2+s2*(i-m)))){
                    minn=abs(sum1-(sum2+s2*(i-m)));
                    mink=i;
                }//放在右边
        }
        printf("%d",mink);//输出
        return 0;
    } 
    

      

  • 相关阅读:
    Azure产品目录
    AWS产品目录
    BD
    Cloud Resource
    do-release-upgrade升级笔记
    Gluster vs Ceph:开源存储领域的正面较量
    OpenStack大规模部署详解
    SECURITY ONION:防御领域的kali
    vue非父子组件间传参问题
    vue源码之响应式数据
  • 原文地址:https://www.cnblogs.com/zhouxuanbodl/p/10046232.html
Copyright © 2011-2022 走看看