求助
  • 板块灌水区
  • 楼主xsj4zyc
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/27 22:10
  • 上次更新2024/8/27 22:43:41
查看原帖
求助
778772
xsj4zyc楼主2024/8/27 22:10
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,t;
ll a[100010];
ll b[100010];
bool xsj(ll x){
//	cout<<x<<endl;
	ll ans=0;
	for(int i=1;i<=n;i++){
		b[i]=ceil(1.0*x/a[i]);
	} 
	for(int i=1;i<=n;i++){
		if(b[i]>0){
			ans+=2*b[i]-1;
			b[i+1]-=b[i]-1;
		}
		else{
			ans++;continue;
		} 
		if(ans>m) return false;
	}
	return ans<=m;
}
int main(){
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>n>>m;
		for(int j=1;j<=n;j++) cin>>a[j];
		ll l=1,r=LONG_LONG_MAX-1;
		while(l<=r){
			ll mid=(l+r)/2;
			if(!xsj(mid)) r=mid-1;
			else l=mid+1;
			//memset(b,0,sizeof(b));
		}
		if(xsj(l))
		cout<<l<<endl;
		else cout<<l-1<<endl;
		
	}
	
    return 0;
}

数据全WA了。 https://www.luogu.com.cn/problem/P9889

2024/8/27 22:10
加载中...