当前位置: 首页 > 编程日记 > 正文

51nod 1065 最小正字段和 解决办法:set存前缀和,二分插入和二分查找

题目:

这题要求大于0的最小字段和,常规O(n)求最大字段和的方法肯定是没法解的。

我的解法是:用sum[i]存前i项的和,也就是前缀和。

这题就变成了求sum[j]-sum[i]的大于0的最小值( j > i )。

我们可以看到直接循环运算量是50000*50000,会超时。

所以我们应该充分利用前缀和的特性。

我们用一个set容器来装sum。

当算到i项时,保证前i-1项已经装入了set中。

我们用二分查找找到第一个比sum[i]小的值,用sum[i]减去这个值来更新答案。

至于二分插入,set容器中插入数据用的就是二分插入。

代码:

#include <bits\stdc++.h> 
using namespace std;
typedef long long ll;
ll sum[50010];  // sum[i]表示 1~(i-1) 项的和 
set <ll> s;     // 到第i项时,s存的是 sum[1]~sum[i-1] 
set <ll>::iterator it;  //迭代器 int main() {int n;cin >> n;int mn = 2000000000;int key;for(int i = 1;i <= n; i++){cin >> key;sum[i] = sum[i-1]+key;}s.insert(0);for(int i = 1;i <= n; i++){// lower_bound返回大于等于sum[i]的最小值// upper_bound返回大于sum[i]的最小值 it = s.lower_bound(sum[i]);if(it != s.begin()){ it--;//it表示小于sum[i]的最大值  if(sum - *it > 0){mn = min((ll)mn,sum[i]-*it);}} s.insert(sum[i]);}cout << mn << endl;return 0;
}

转载于:https://www.cnblogs.com/zhangjiuding/p/7628119.html

相关文章:

著名作者网站论文下载

http://www.cs.wright.edu/~agoshtas/ardyCV.htmlhttp://www.cse.msu.edu/~stockman/http://www.dkfz.de/tbi/people/homepages/rohr/转载于:https://www.cnblogs.com/stoneresearch/archive/2008/11/06/4336753.html

内存与进程管理

这一节的内容有点杂&#xff0c;只能自己手动输入了 1.uname命令用于打印当前系统相关信息&#xff08;内核版本号、硬件架构、主机名称和操作系统类型等&#xff09;。 uname -a显示全部信息 2.cat /etc/redhat-release 查看当前系统版本 3.free -m / -g 查看内存使用状况&…

Python的闭包和装饰器

什么是闭包 python中函数名是一个特殊的变量&#xff0c;它可以作为另一个函数的返回值&#xff0c;而闭包就是一个函数返回另一个函数后&#xff0c;其内部的局部变量还被另一个函数引用。 闭包的作用就是让一个变量能够常驻内存。 def count():fs []for i in range(1, 4):de…

用@Data注解的形式替代类中的setter、getter方法

目录 1. 封装 2. Data注解介绍 3. Lombok的使用 1. 封装 在类中&#xff0c;为了增强数据的安全性和隐蔽性&#xff0c;通常会对数据和与数据有关的方法进行封装&#xff1b; 封装的步骤&#xff1a; 1、将类中的属性设置为private(私有的)&#xff0c;只能本类才能访问&…

note-在VisualStudio中使用正则表达式

前言&#xff1a;本来昨天已经写了&#xff0c;但由于意外给搞丢失了&#xff0c;由于刚刚看了这篇文章知道了一些真相&#xff1b;现在的心理状态已经和昨天不一样了&#xff0c;昨天是满心的高兴&#xff0c;对VisualSduio很有好感&#xff0c;当时自认为是没有把正则学好&am…

AS 发展小计

2000 -- 2003: ActionScript 1.0, 和 Flash 5.0 一起发布&#xff1b;变成可文本编辑&#xff08;以前是从对话框和下拉菜单中选择&#xff0c;当然&#xff0c;那个时候不叫AS&#xff09;添加 switch 语句和strict equality 操作&#xff1b;2003 -- 2006: ActionScript 2.0 …

2019年3月8日比赛(知网是什么)

第一题&#xff08;对冒泡排序原理的理解&#xff09; 题意&#xff1a;第一行的输入代表下一行输入的无序数的数的个数&#xff0c;然后下一行&#xff0c;数字与上一行数字对应&#xff0c;若对应为1则该数可以与下一个数交换位置。 根据冒泡排序可知&#xff0c;任何一个无序…

Mybatis 中$与#的区别

1 #是将传入的值当做字符串的形式&#xff0c;eg:select id,name,age from student where id #{id},当前端把id值1&#xff0c;传入到后台的时候&#xff0c;就相当于 select id,name,age from student where id 1. 2 $是将传入的数据直接显示生成sql语句&#xff0c;eg:select…

UUID.randomUUID()生成唯一识别码

目录 1、UUID 的概念 2、UUID的组成 3、UUID.randomUUID()使用 1、UUID 的概念 UUID&#xff08;Universally Unique Identifier&#xff09;&#xff1a;通用唯一识别码&#xff0c;是一种软件建构的标准。 UUID 目的是让分布式系统中的所有元素&#xff0c;都能有唯一的…

人生应该记住的16句话(转载)

1、再烦&#xff0c;也别忘微笑&#xff1b;再急&#xff0c;也要注意语气&#xff1b; 再苦&#xff0c;也别忘坚持&#xff1b;再累&#xff0c;也要爱自己。 2、 低调做人&#xff0c;你会一次比一次稳健&#xff1b;高调做事&#xff0c;你会一次比一次优秀。 3、 成功的时…

转:一个简单的基于WEB的QTP自动化测试框架-SAFFRON

来源: http://www.itestware.com/ctest/index.php?optioncom_content&viewarticle&id62:webqtp-saffron&catid35:testing_is_believing 06年的时候&#xff0c;Mercury 提供了一个QTP自动化测试框架原型 - SAFFRON&#xff0c;可用于指导我们开发基于WEB的自动化测…

积极学习的朋友

自从去年7月反省之后&#xff0c;认识的朋友逐渐多了&#xff0c;天下那么大&#xff0c;优秀的人很多&#xff0c;通过网络认识是一个很不错的途径&#xff0c;经过一段时间后&#xff0c;圈子范围扩大了很多&#xff0c;行业上和非行业上都有涉及&#xff0c;对自己认知冲击很…

hive向表格中插入数据并分析语句

1&#xff0c;---导入mds_imei_month_info set hive.exec.max.dynamic.partitions 100000; //最大的动态分区表 set hive.support.concurrencyfalse; //是否支持并发 set hive.exec.max.dynamic.partitions.pernode 100000; //each mapper or reducer可以创建的最大动态分区数 …

资源与工具下载

Red Hat Linux镜像文件 链接&#xff1a;https://pan.baidu.com/s/1N3Khh6pyKpMkOnkEL-U9_A 提取码&#xff1a;0hnu jdk1.8(32位64位)安装版 链接&#xff1a;https://pan.baidu.com/s/15Jm6Ca6IBR3OEauge-4FYQ 提取码&#xff1a;uo2l Tomcat 8(32位64位)安装版 链接…

Global.asax中Application_Error无法执行

Global.asax中Application_Error无法执行问题解决后才发现这句是错误的&#xff0c;之前用VS2005开发后发布到服务器上也出现这种情况&#xff0c;后来莫名 的好了(是解决了没发现原因)。之前的文章链接后来用catch捕捉后真相大白&#xff0c;System.Security.SecurityExceptio…

虚拟化如何做实?详解戴尔2.0版解决方案

继5月份推出虚拟化解决方案后&#xff0c;2008年9月16日&#xff0c;戴尔又宣布推出包括新款服务器、存储产品&#xff0c;管理工具及基础设施咨询服务在内的全新虚拟化2.0解决方案&#xff0c;致力于为客户提供通向虚拟化的智慧之道。戴尔的虚拟化解决方案包括哪些具体的内容&…

Socket/ServerSocket 选项

Socket/ServerSocket 选项 原文:Socket/ServerSocket 选项在网络编程中&#xff0c;Socket/ServerSocket有一些选项用来自定义一些行为&#xff0c;现在分享一下。Socket选项 1.TCP_NODELAY 在Socket发送数据时&#xff0c;默认情况下&#xff0c;数据会先进入缓冲区&#xff0…

MySQL主从复制的常用拓扑结构

1、复制的常用拓扑结构 复制的体系结构有以下一些基本原则&#xff1a; (1) 每个slave只能有一个master&#xff1b; (2) 每个slave只能有一个唯一的服务器ID&#xff1b; (3) 每个master可以有很多slave&#xff1b; (4) 如果你设置log_slave_updates&#xff0c;…

统计java文件中的代码行数

统计Java代码行数工具类 —— CodeCounterUtil.java 统计指定目录下的java文件中代码行数 —— public static int getCodeNumFromFolder(String filePath)统计具体文件中的java代码行数 —— public static int getCodeNumFromFile(String filePath)import java.io.Buf…

jQuery插件thickbox在ie下垂直居中问题

jQuery 插件 thickbox 3.1 在ie下总不能垂直居中&#xff0c;按“http://jamazon.co.uk/web/2008/03/17/thickbox-31-ie7-positioning-bug/”上的方法改了也没用&#xff0c;咋办&#xff1f; 我是这样改的&#xff1a;管它ie6还是ie789&#xff0c;一视同仁&#xff01; 原284…

dos分区:C语言建立多个PRI DOS分区

dos分区:C语言建立多个PRI DOS分区 来源: 发布时间:星期四, 2008年9月25日 浏览:127次 评论:0一、引言 在DOS系统下&#xff0c;在计算机应用培训中因培训要求不同&#xff0c; 对软件的要求也不同&#xff0c;由于学员的误操作&#xff0c;存放在硬盘上的软件和重要数据容 易被…

简单几步让CentOS系统时间同步

在使用CentOS系统的时候&#xff0c;我们可能会遇到时间不准的问题&#xff0c;那我们如何解决这个我问题呢&#xff0c;下面就来教大家一个CentOS系统时间同步的方法&#xff0c;希望大家可以解决自己所存在的疑问。 CentOS系统时间同步的步骤如下&#xff1a; 新装的CentOS系…

挨踢人生路--记我的10年18家工作经历 - 后记

挨踢人生路--记我的10年18家工作经历 &#xff0d; 前言挨踢人生路--记我的10年18家工作经历 &#xff0d; 从大学说起――不得不说的一些事情挨踢人生路--记我的10年18家工作经历 &#xff0d; 第1家公司&#xff0c;在老家的工作挨踢人生路--记我的10年18家工作经历 &#xf…

FileUtil

文件工具类 —— FileUtil.java 获取Web工程的根目录 —— String getBasePath()方法获取文件名称 —— public static String getFileName(String filePath)方法获取文件名称前缀 —— public static String getPrefixOfFileName(String filePath)方法获取文件名后缀(…

C# Sato CL4NX打印机发送SBPL指令打印表面信息、RFID芯片数据写入

待更新..转载于:https://www.cnblogs.com/zh7791/p/7650073.html

同步SQL Server 2000 数据库

为什么要同步SQL Server 2000 数据库&#xff0c;它都用在什么场合 数据实时备份同步&#xff0c;数据库服务器出问题时我们也有其正常工作时的备份 数据实时备份同步&#xff0c;一台服务器负载不起时&#xff0c;可以用来做负载均衡 数据实时备份同步&#xff0c;数据库服务器…

【Leecode】两数相加

学习了链表结构&#xff0c;链表中元素的访问&#xff0c;对象指针的初始化与赋值&#xff0c;链表的创建&#xff08;多个节点链接起来&#xff09;&#xff0c;进位计算的表达。 100ms /*** Definition for singly-linked list.* struct ListNode {* int val;* ListN…

推荐一个HTML的语法高亮解析器

http://code.google.com/p/syntaxhighlighter/wiki/Languages支持高亮的语法如下Language Aliases C cpp, c, c C# c#, c-sharp, csharp CSS css Delphi delphi, pascal Java java Java Script js, jscript, javascript PHP php Python py, python Ruby rb, ruby, rails, ror S…

angularJS中directive与controller之间的通信

当我们在angularJS中自定义了directive之后需要和controller进行通讯的时候&#xff0c;是怎么样进行通讯呢&#xff1f; 这里介绍3种angular自定义directive与controller通信的指令。 1.指令作用域中的"" 作用&#xff1a;把当前属性作为字符串传递实现指令与html页…

Eclipse启动失败:No java virtual machine was found after searching the follwing locations

Eclipse启动失败&#xff0c;错误信息如下如所示&#xff1a; 通过阅读错误信息&#xff0c;可以看到错误原因和 javaw.exe路径 有关&#xff1b; 打开eclipse.ini文件&#xff0c;也就是启动Eclipse的初始化文件&#xff1a; 在本地计算机中找到jdk安装路径下javaw.exe文件&a…