拔河比赛(解决方案)

news/2024/12/21 14:52:46/

题目描述

今天小Q班的体育课,是进行拔河比赛。同学们个个兴奋极了。体育老师一声令下,就抢着拉绳子占好了位置,谁也不肯让谁。 
每位同学都一个力量值,为了让两边队伍实力均衡,体育老师想找一个合适的“中点”,将队伍分成两边,使得两个队伍力量总值相差最小。你来帮体育老师想想办法?

输入

第一行有两个正整数。一个整数N( 2 <= N <= 500000),表示小Q班上的人数。
第二行有N个整数,依次表示队伍中每位同学的力量值P(0<=p<=1000)。

输出

输出两个数x和y。 表示在x和y之间设置“中点”,可以使队伍两边的力量总值相差最小(如果有多个中点,则以x大优先)。

样例输入

10
65 50 80 85 120 95 85 55 75 120

样例输出

5 6

提示

前5个人的力量和为400,后5个人的力量和为430,最小差值为30。
数据范围:
对于60%的数据    N<10000;
对于100%的数据  N<500000;

代码如下:

#include<iostream>
using namespace std;
int a[1001000];
int b[1001000];
int main()
{long long n;cin>>n;long long sum=0;for(long long i=1;i<=n;i++){cin>>a[i];sum+=a[i];}long long number=0;for(long long i=1;i<=n;i++){	number+=a[i];b[i]=abs(sum-number-number);}long long min,location;min=b[1];location=1;long long i;for(i=1;i<n;i++){if(min>=b[i]){min=b[i];location=i;}}cout<<location<<" "<<location+1;} 

1,解决了队伍中存在力量值为零的问题。(某些思路会受数字零的存在而被影响)。

2,找到合适的问题切入思路,否则思路的选择会影响整个题实现的难易程度。

3,核心部分仅进行一次循环,找到当前位置下力量值的差异,存入另外的数组当中,在稍后进行比较筛选即可。

4,注意数值的大小,int类型会溢出,可以用longlong进行存取。


http://www.ppmy.cn/news/690059.html

相关文章

JS变量的使用

声明变量&#xff08;valuable&#xff09;&#xff1a;var *** 在内存中开辟空的空间&#xff08;undefind&#xff09; 变量赋值&#xff08;或初始化&#xff09;&#xff1a;var *** **** 声明多个变量&#xff1a;var *** **&#xff0c;*** **&#xff1b; 【代码…

10.8 - 每日一题 - 408

每日一句&#xff1a;努力的意义&#xff1a;不要当父母需要你时&#xff0c;除了泪水&#xff0c;一无所有。不要当孩子需要你时&#xff0c;除了惭愧一无所有。不要当自己回首过去&#xff0c;除了蹉跎&#xff0c;一无所有。 数据结构 1 设有13 个初始归并段&#xff0c;长…

计算机组成原理第六章单元测试,计算机组成原理-课堂练习-第六章01

第六章 运算方法 一、单项选择 2、设8位机器数采用补码形式。其十进制数-27,对应机器数为( ) A、27H B、E5H C、9BH D、C2H 3、计算机系统中常常采用补码进行运算的目的是( )。 A、提高运算的速度 B、提高运算的精制 C、简化运算器的设计 D、便于程序员识别数据 4、计算机中表…

/bin/bash: bash not found Alpine linux安装bash

系统应该是 Alpine Linux LXD&#xff08;Linux容器&#xff09;&#xff0c;那么入股在其中安装 bash shell呢 apk update apk upgrade apk add bash# 安装 bash 文档 apk add bash-doc# 安装 bash 自动命令补全 apk add bash-completion# 使用 bash 作为 shell bash# 需要从…

8086汇编的各种指令

1数据传送类指令 传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外&#xff0c;均不影响标志位 重点掌握 MOV XCHG XLAT PUSH POP LEA 指令的详细可以查看指令帮助文档&#xff0c;如查看指令影响的标志寄存器或者指令支持的功能 传送指令MOV 把一个…

Java 中Duplicate key 异常

1.问题 Java中Duplicate key 异常解决 使用Java8中提供的list 转换map方法时&#xff0c;会出现下面的问题&#xff1a; java.lang.IllegalStateException: Duplicate key 产生这个问题的原因时我们参与转换的list中&#xff0c;作为key的属性有重复&#xff0c;没有办法确定使…

11.计算机网络---传输层/TCP- UDP协议/三次握手、四次挥手

之前学习了很多关于网络层的协议&#xff0c;例如IP协议、arp协议、icmp协议等&#xff0c;接下来我们要学习TCP/IP五层协议中的第三层-传输层中的两个协议&#xff1a;TCP协议和UDP协议&#xff0c;以及TCP协议中非常重要的三次握手、四次挥手。 文章目录 传输层协议TCP和UDP…

某计算机主存空间大小为1mb,例题习题 计算机组车纳原理.doc

例题习题 计算机组车纳原理 例题解析与练习 第一次 2009年 11&#xff0e;冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中&#xff0c;CPU区分它们的依据是( )。 A&#xff0e;指令操作码的译码结果 B&#xff0e;指令和数据的寻址方式 C&#xff0e;指令周期的不同阶…