第十五届蓝桥杯C/C++B组拔河问题详解

devtools/2025/3/19 2:42:05/

kans

解题思路

这道题目的难点在于枚举所有区间,并且区间不能重合,那么这样感觉就很难了。但是用下面这种方法就会好很多。
在这里插入图片描述

我们只需要将左边的所有区间的各种和放在一个set中,然后我们在枚举右边的所有区间的和去和它进行比较,然后求出差值,如果差值比最小的小,那么就更新答案,那么我们只需要去从左边到右边移动线的位置就行。

代码实现

#include<iostream>
#include<vector>
#include<iostream>
#include<vector>
#include<set>
using namespace std;
const int N=1e4;
int p[N];
long long sum[N];
typedef long long LL;
set<LL>a;
int main()
{ios::sync_with_stdio(false);int n;cin>>n;for(int i=1;i<=n;i++){cin>>p[i];sum[i]=sum[i-1]+p[i];//前缀和}LL res=1e15;a.insert(1e15);//防止找不到比右边区间大的左边的a.insert(-1e15);//防止找不到比右边区间小的左边的for(int i=1;i<=n;i++)//枚举中间的线{for(int l=1;l<=i-1;l++)//枚举左边的所有区间{a.insert(sum[i-1]-sum[l-1]);//插入前面的区间[l,i-1];}       for(int r=i;r<=n;r++){LL s=sum[r]-sum[i-1];//枚举右边的所有区间和auto it= a.lower_bound(s);//大于这个数的最小数res=min(res,(*it-s));it--;//找到小于这个数的最大数res=min(res,(s-*it));}}cout<<res;return 0;
}

http://www.ppmy.cn/devtools/168217.html

相关文章

基于图神经网络(GNN)的节点分类实战:从GCN到GraphSAGE

图神经网络(GNN)是一种专门用于处理图结构数据的深度学习模型,广泛应用于社交网络分析、推荐系统和生物信息学等领域。图卷积网络(GCN)是GNN的经典方法,而GraphSAGE则通过引入采样机制进一步提升了其性能。本文将通过一个完整的实战案例,展示如何使用GCN和GraphSAGE对图…

基于CNN的多种类蝴蝶图像分类

基于CNN的多种类蝴蝶图像分类&#x1f98b; 基于卷积神经网络对64992786张图像&#xff0c;75种不同类别的蝴蝶进行可视化分析、模型训练及分类展示 导入库 import pandas as pd import os import matplotlib.pyplot as plt import seaborn as sns import numpy as np from …

Android第三次面试(Java基础)

面试题一&#xff1a;在 Android 里&#xff0c;Array 和 ArrayList 区别&#xff1f; 定义与大小&#xff1a;数组声明时要指定大小&#xff0c;之后固定&#xff1b;ArrayList 动态&#xff0c;无需提前定大小。性能&#xff1a;二者访问元素快&#xff0c;时间复杂度 O(1)&…

vue/react/vite前端项目打包的时候加上时间最简单版本,防止后端扯皮

如果你是vite项目&#xff0c;直接写一个vite的插件&#xff0c;通过这个插件可以动态注入环境变量&#xff0c;然后当打包的时候&#xff0c;自动注入这个时间到环境变量中&#xff0c;然后在项目中App.vue中或者Main.tsx中打印出来&#xff0c;这就知道是什么时候编译的项目了…

C51 Proteus仿真实验17:数码管显示4×4键盘矩阵按键

说明 按下任意键时&#xff0c;数码管都会显示其键的序号&#xff0c;扫描程序首先判断按键发生在哪一列&#xff0c;然后根据所发生的行附加不同的值&#xff0c;从而得到按键的序号 Proteus仿真 注意&#xff1a; K0、K4、K8、KC右边引脚连接的是P1.0 K1、K5、K9、KD右边引…

通向AGI的未来之路!首篇2D/视频/3D/4D统一生成框架全景综述(港科大中山等)

文章链接&#xff1a; https://arxiv.org/pdf/2503.04641 摘要 理解并复现现实世界是人工通用智能&#xff08;AGI&#xff09;研究中的一个关键挑战。为实现这一目标&#xff0c;许多现有方法&#xff08;例如世界模型&#xff09;旨在捕捉支配物理世界的基本原理&#xff0…

使用Ajax技术进行动态网页的爬虫(pycharm)

Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;技术在现代Web开发中广泛应用。 它允许网页在不重新加载整个页面的情况下&#xff0c;通过JavaScript与服务器进行异步通信&#xff0c;动态更新部分内容。这种技术对爬虫的功能和作用产生了显著影响&#xff0c;…

详细讲一下 Webpack 主要生命周期钩子流程(重难点)

1. Webpack 主要生命周期钩子流程 class LifecyclePlugin {apply(compiler) {// 1. 初始化阶段compiler.hooks.initialize.tap(LifecyclePlugin, () > {console.log(1. 初始化 Webpack);});// 2. 开始编译compiler.hooks.beforeRun.tap(LifecyclePlugin, () > {console.…