原题单链接:https://www.luogu.com.cn/training/111#problems
AcWing789. 数的范围
#include
using namespace std;
const int N = 1e5 + 10;
int n, q, a[N];
int bs1(int x)
{
int l = -1, r = n;
while (l + 1 != r)
{
int mid = l + r >> 1;
if (a[mid] > 1;
if (a[mid] > n >> q;
for (int i = 0; i > a[i];
}
while (q--)
{
int x;
cin >> x;
int res1 = bs1(x);
if (res1 == -1)
{
cout
using namespace std;
double n;
int main()
{
cin>>n;
double l=-100,r=100;
// while(r-l>1e-8)
for(int i=0;i
using namespace std;
const int N=1e6+10;
int n,m;
int a[N];
int main()
{
cin>>n>>m;
for(int i=1;i>a[i];
}
while (m--)
{
int x;
cin>>x;
int l=0,r=n+1;
while (l+1!=r) // l+1>1;
if(a[mid]
using namespace std;
const int N=2e5+10;
int n,C;
int q[N];
int bs1(int x)
{
int l=0,r=n+1;
while(l+1>n>>C;
for(int i=1;i>q[i];
}
sort(q+1,q+n+1);
long long cnt=0;
for(int B=1;B
using namespace std;
const int N=1e6+10;
int n,m;
int q[N];
bool check(int x)
{
long long sum=0;
for(int i=1;i=m)return true;
}
if(sum>=m)return true;
else return false;
}
int main()
{
cin>>n>>m;
for(int i=1;i>q[i];
}
int l=0,r=4e5;
while(l+1
using namespace std;
const int N = 1e5 + 10;
int n, k;
int q[N];
bool check(int x)
{
int sum = 0;
for (int i = 1; i = k)
return true;
else
return false;
}
int main()
{
cin >> n >> k;
for (int i = 1; i > q[i];
}
int res = 0, sum = 0;
int l = 0, r = 1e8;
while (l + 1
using namespace std;
const int N=5e4+10;
int L,n,m;
int q[N];
bool check(int x)
{
int cnt=0;
int i=0,now=0;
while(i>L>>n>>m;
for(int i=1;i>q[i];
}
q[n+1]=L;
int l=0,r=L+1;
while(l+1
using namespace std;
const int N=1e5+10;
int L,n,k;
int q[N],s[N];
bool check(int x)
{
int cnt=0;
for(int i=1;ix)
{
cnt++;
int num=s[i]-x;
while (num>x)
{
cnt++;
num-=x;
}
// cnt+=num/x-1;
// if(num%x)cnt++;
}
}
if(cnt>L>>n>>k;
for(int i=1;i>q[i];
s[i]=q[i]-q[i-1];
}
q[n+1]=L;
s[n+1]=L-q[n];
int l=0,r=1e7+1;
while(l+1<r)
{
int mid=(l+r)/2;
if(check(mid))r=mid;
else l=mid;
}
if(check(l))cout<<l<<'\n';
else cout<<r<<'\n';
return 0;
}