很基础的一个二分答案( 但是还是WA了
传送门 :
思路二分答案基本步骤 :
- 确定上下界
- 确定 c h e c k check check
我们先确定上下界 , 因为是和的最大值最小, 所以我们的 r = s u m ( a [ i ] ) r = sum(a[i]) r=sum(a[i]) 显然
但是我们的下界不能是从 1 1 1开始,为什么呢? 因为不管是分为一个单独的集合 还是
和其他集合再一团,我们的最小值都只可能是 m a x ( a [ i ] ) max(a[i]) max(a[i]) ,所以这就是上下界
然后我们确定 c h e c k check check , 既然确定是二分答案了,所以对于每一个区间和 大于
m i d mid mid 的我们就给它单独开一个区间,如果最后开的区间大于等于 m m m那么答案就
往那边递进,反之则然
CODEbool check(int x)
{
int cnt = 0 ;
int sum = 0 ;
for(int i=1;ix){
cnt++;
sum = a[i] ;
}else sum+=a[i];
}
if(cnt>= m )return true;
else return false;
}
void solve()
{
cin>>n>>m;
int l = 1,r = 0 ;
for(int i=1;i>a[i];
r +=a[i];
l = max(l,a[i]);
}
// cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?