首页 > 其他分享 >P4343 [SHOI2015]自动刷题机

P4343 [SHOI2015]自动刷题机

时间:2023-03-19 17:33:27浏览次数:57  
标签:md int ans1 ans2 P4343 SHOI2015 inf 刷题

https://www.luogu.com.cn/problem/P4343

 

#include <iostream>
using namespace std ; const int N=1e5+2;
 #define int long long
 const int inf=1e15;
 int a[N],n,m;
 
 int cal(int x){
	int t=0,s=0; 
    for(int i=1;i<=n;i++){
        s=max(s+a[i],0ll);
        if(s>=x) s=0,t++;
    }
	return t;
}
 void solve(){
 	int ans1=-1,ans2=-1 ;
 	int t;
	int l,r,md;
 	l=1,r=inf;
 	while(l<=r){
		md=(l+r)/2;
 		if((t=cal(md))<=m){
 		   r=md-1; 
		   if(t==m) ans1=md;	
		 }
 		else l=md+1;
	}
	
	l=1,r=inf;
 	while(l<=r){
 		md=(l+r)/2;
 		if((t=cal(md))>=m){
 		   l=md+1; 
 		   if(t==m) ans2=md;	
		 }
 		else r=md-1;
	 }
	 if(ans1==-1) cout<<-1<<endl;
	 else cout<<ans1<<' '<<ans2<<endl;
 }
 
 signed main(){
 	cin>>n>>m;
 	for(int i=1;i<=n;i++) cin>>a[i];
 	solve();
 } 
 
 

 

标签:md,int,ans1,ans2,P4343,SHOI2015,inf,刷题
From: https://www.cnblogs.com/towboa/p/17233738.html

相关文章

  • 算法刷题记录
    http://acm.hdu.edu.cn/showproblem.php?pid=1094#include<iostream>#include<vector>intmain(){usingnamespacestd;vector<int>vecrow;......
  • 【链表】复习/刷题 记录
    leetcode203.RemoveLinkedListElements/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode......
  • 2023/03/15刷题
    B.SorttheArray链接B.SorttheArray这个题原本也是不会然后看了别人的题解,以及学长给了一个思路学长给的思路就是找到最长的可以翻转的区间然后把这个区间翻转过......
  • 2023/03/12刷题
    A.ApplemanandToastman链接A.ApplemanandToastman这个题要计算最大值所以我们肯定直接,每次都减少最少的那个,然后使用一个变量每次把值加上最后打印出来结果就可......
  • 2023/03/13刷题
    C.BoxesPacking链接C.BoxesPacking这个题就是找相同的数字的最大值.因为每一个数字都要放在一个盒子里面打印就可以#include<iostream>#include<algorithm>#i......
  • 2023/03/14刷题
    A.IQtest链接A.IQtest这个题就是给一个数数组,数组有两种情况。要么有n-1个奇数和一个偶数要么有n-1个偶数和一个奇数让我们求出这一个奇数和一个偶数所在数组......
  • 前端-笔试刷题-JavaScript
    基本数据类型检测题目描述请补全JavaScript函数,要求以字符串的形式返回参数的类型。注意:只需检测基本数据类型。点击查看代码function_typeof(value){//......
  • 前端-笔试刷题-新窗口打开
    题目描述请写出可以在新窗口打开文档的a标签。点击查看代码<!--补全代码--><ahref="#"target="_blank">链接</a>效果图:![](https://img2023.cnblogs.com/b......
  • 算法刷题-记票统计-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • LeeCode刷题记录2——有序数组的平方
    官方解法:双指针classSolution{public:vector<int>sortedSquares(vector<int>&nums){intn=nums.size();//声明变量n为数组的长度intnega......