首页 > 其他分享 >【SHOI2015】自动刷题机

【SHOI2015】自动刷题机

时间:2024-09-09 16:37:22浏览次数:4  
标签:二分 int mid long 自动 ans SHOI2015 check 刷题

一道朴素的二分题,二分的基础很不好所以选择了这道

本道题主要进行二分的考察

容易发现,对于给定的序列,n越大能过的题是越少的,所以可以二分来求刚好过k道题的左右边界。

mid大于k,即做得太多了,就将l右移。

mid小于k,即做得太少了,就将r左移。

代码实现:

#include<bits/stdc++.h>
using namespace std;
int n,k; 
const int maxn=1e6+10;
long long a[maxn];
long long check(long long id)
{
	long long sum=0;
	long long ans=0;
	for(int i=1;i<=n;i++)
	{
		sum=max(sum+a[i],0ll);
		if(sum>=id)
		{
			ans++;
			sum=0;
		}
	}
	return ans;
}
long long l=1;
long long r=1e18;
long long ans1=-1;
long long ans2=-1;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	while(l<=r)
	{
		long long mid=(l+r)>>1;
		long long p=check(mid);
	
		if(p<=k)
		{
			r=mid-1;
			if(p==k)
			{
				ans1=mid;
			}
		}
		else l=mid+1;
	}
	l=1;
	r=1e18;
	while(l<=r)
	{
		long long mid=(l+r)>>1;
		long long p=check(mid);
		if(p>=k)
		{
			l=mid+1;
			if(p==k)
			{
				ans2=mid;
			}
		}
		else r=mid-1;
	}
	if(ans1==-1)
	{
		puts("-1");
	}
	else cout<<ans1<<" "<<ans2;
}

 

标签:二分,int,mid,long,自动,ans,SHOI2015,check,刷题
From: https://www.cnblogs.com/Jucex/p/18404812

相关文章

  • 避坑指南:Golang框架自动化测试中的常见问题与解决方案大全
    在使用Golang框架进行自动化测试的过程中,开发者常常会遇到各种各样的问题。为了帮助大家避免一些常见的坑,我整理了一份详细的避坑指南,希望能对大家的开发工作有所帮助。忽视测试用例的独立性在进行自动化测试时,很多人会犯的一个错误是让测试用例之间产生依赖。比如,测试用例A需......
  • linux系统usb设备的自动挂载、自动卸载(udev-media-automount)
    不推荐通过编辑/etc/fstab文件挂载方式,因为一旦拔掉硬盘或者更换硬盘后,系统就启动不起来了。这里推荐使用udev-media-automount开源网址: https://github.com/Ferk/udev-media-automount1、下载软件包:cd/目录,进入某个目录下,然后通过一下命令下载或者直接下载解压拷贝进去......
  • Python3+requests搭建接口自动化测试框架_python3 import requests
    框架理念:使用json文件编写测试用例,建一个脚本循环读取测试用例并执行,然后对比返回的接口和用例中的期望结果。将测试结果写入到一个excel表格中生成测试报告,最后使用发送邮件功能将测试报告发送到指定邮箱。其中对所有公共方法进行封装并放在common公共文件目录下。  ......
  • 本地文本文件自动分类整理的工具设计与实现 毕业设计(案例展示)
    利用Python编程语言的功能,结合自然语言处理和字符串匹配算法,可以根据文件类型、内容关键词、文件名关键词以及修改日期等多种维度对文件进行自动分类整理。。。。自动分类;自然语言处理;字符串匹配;Python os和shutil模块 datetime模块python-docx库字符串匹配算法N......
  • 如何实现告警的自动化响应
    实现告警的自动化响应可以帮助团队更快地处理问题,减少手动干预,提高系统的可靠性。以下是一些步骤和工具建议,可以帮助你实现告警的自动化响应:1.选择合适的监控工具Prometheus+Alertmanager:使用Prometheus监控指标,结合Alertmanager来管理告警。其他监控工具:可以考虑使用......
  • 2025入局自动驾驶的秋招人们,应该瞄准哪些技术方向?
    2025入局自动驾驶的秋招人们,应该瞄准哪些技术方向?2024年已过大半,9月随着开学季的来临,2025届的毕业生也纷纷踏出了秋招的第一步。无论是在学生期间就深耕许久智驾技术、还是从其他赛道转战至智驾,自2023年末一直到今年上半年来,都一直国内智驾行业层出不穷的各种破圈动态刷屏......
  • 自动驾驶:10家端到端方案简述
    自动驾驶:10家端到端方案简述基于今年发布的各类端到端智能驾驶方案,RoboX根据过往采访内容以及公开信息,高度概括出10家企业的端到端方案结构,以及相关负责人的观点,便于大家快速达成基本认知:附赠自动驾驶最全的学习资料和量产经验:链接01理想汽车**概述:**理想采用了「双系......
  • selenium自动化检测方法总结 携带用户数据 绕过检测 无头模式 句柄切换
    1.selenium携带用户数据fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceservice=Service(executable_path='chromedriver.exe')option=webdriver.ChromeOptions()user_data_dir=r'C:\Users\12501\AppData\Local......
  • 工业自动化新动力 | 集和诚智慧工业专用控制器KMDA-3303/3305
    智慧工业:中国制造2025随着18世纪蒸汽机的发明,工业生产从手工作坊进入了机器规模化生产的阶段,工业生产的发展也经历了4个阶段:工业机械化时代、工业电气化时代、工业自动化时代以及如今正在进行的工业智能化时代(德国的“工业4.0”、美国的“工业互联网”、中国的“智能制造2025”......
  • SpringBoot自动装配中的Condition机制
    SpringBoot自动装配中的Condition机制在SpringBoot中,自动装配(Auto-Configuration)是一个核心特性,它极大地简化了Spring应用的配置过程。自动装配通过条件判断(Condition)机制,根据应用的环境和依赖来决定是否创建和配置Bean。这一机制在Spring4.0中引入,主要通过@Conditional......