蓝桥杯冲刺_二分(正在补题)

二分一定要是单调队列,单调才具有二段性

特征 最小值最大化 最大值最小化

15 届蓝桥杯 14 天省赛冲刺营 1 期 - M次方根 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h> 
using namespace std;

double n,l,r,mid;
double eps=1e-8;

bool check(double mid,int m){//m次根下
    double c=1;
    while(m){
        c=c*mid;//s次根 
        m--;//c是mid的3次方 
    }
//要与别的条件扯上关系 在这里就是与n本身扯上关系
    if(c>=n)//如果mid的3次方大于等于n 
        return true;//还可以再小 
    else//如果mid的3次方下雨n 
        return false;//需要更大 
}

int main(){
    int m;
    cin>>n>>m;
//设置二分边界
    l=0,r=n;
//实数二分
    while (l + eps < r)
    {//mid是a可以的值 
        double mid = (l + r) / 2;
        if (check(mid,m))r = mid;
        else l = mid;
    }
    //一般使用print
    //printf("%x.yf",n)
    //其中X是固定整数长度,小数点前的整数位数不够,会在前面补0
    //y是保留小数位数,不够补零
    printf("%.7f",l);
    return 0;
}

15 届蓝桥杯 14 天省赛冲刺营 1 期 - 分巧克力 - 蓝桥云课 (lanqiao.cn) 

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int h[N],w[N];
int n,k;
bool check(int mid){//最大边长是mid
  int cnt=0;
  for(int i=1;i<=n;i++){
    int len=h[i]/mid;
    int wid=w[i]/mid;
    cnt+=len*wid;
  }
  return cnt>=k;
}
void solve(){
  cin>>n>>k;
  for(int i=1;i<=n;i++)cin>>h[i]>>w[i];
  int l=0,r=1e5+7;
  while(l<r){
    int mid=(l+r+1)>>1;
      if(check(mid))l=mid;//还可以更多
      else r=mid-1;
  }
  cout<<l;
  return ;
}
int main(){
  int t=1;
  while(t--)solve();
  return 0;
}

1.跳石头 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
const int N=5e4+7;
int l,n,m;
int stones[N];
bool check(int mid){//最短跳跃距离
  int pos=0;//记录目前在哪个石头上目前在起点石头上
  int cnt=0;//搬走多少个石头
  for (int i = 1; i <= m+1; i++)
        if (stones[i] - stones[pos] < mid)
            cnt++;//小于最小跳跃距离就搬走石头i然后去看下一个石头
        else pos = i;//否则跳上
    if (cnt <= n) return true;//最短跳远距离mid还可以更大
    return false;
}
void solve(){
  cin>>l>>m>>n;//起点到终点的距离 岩石数 至多移走
  for(int i=1;i<=m;i++){
    cin>>stones[i];//表示第i个石头到起点stones[0]的距离
  }
  stones[m+1]=l;//终点石头
  int l=1,r=1e9+7;//最短的跳远距离
  while(l<r){
    int mid=(l+r+1)>>1;
    if(check(mid))l=mid;
    else r=mid-1;
  }
  cout<<l;
  return ;
}
int main(){
  int t=1;
  while(t--)solve();
  return 0;
}

1.解立方根 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
double n;
double eps=0.0001;
bool check(double mid,int m){//m次方
  double res=1;
  while(m--){
    res*=mid;//得到这个数的m次方
  }
  if(res>=n)return true;
  else return false;
}
void solve(){
  cin>>n;
  double l=0,r=n;
  while(l+eps<r){
    double mid=(l+r)/2;//不能位运算了
    if(check(mid,3))r=mid;//还能更小
    else l=mid;
  }
  printf("%.3lf\n",l);
  return ;
}
int main(){
  int t=1;cin>>t;
  while(t--)solve();
  return 0;
}

相关推荐

  1. 冲刺_二分()

    2024-03-14 03:40:05       114 阅读
  2. -牛客冲刺单】

    2024-03-14 03:40:05       49 阅读
  3. 二分-[364]跳石头(C++)

    2024-03-14 03:40:05       36 阅读
  4. 】第十五届C/C++B组省赛

    2024-03-14 03:40:05       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 03:40:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 03:40:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 03:40:05       87 阅读
  4. Python语言-面向对象

    2024-03-14 03:40:05       96 阅读

热门阅读

  1. 程序员如何选择职业赛道?

    2024-03-14 03:40:05       41 阅读
  2. WebGL开发数字孪生系统

    2024-03-14 03:40:05       50 阅读
  3. CSS动画效果

    2024-03-14 03:40:05       42 阅读
  4. Web核心

    Web核心

    2024-03-14 03:40:05      42 阅读
  5. 《1w实盘and大盘基金预测 day2》

    2024-03-14 03:40:05       39 阅读
  6. 力扣45:跳跃游戏2

    2024-03-14 03:40:05       40 阅读
  7. css选择器nth-child(n)的学习理解

    2024-03-14 03:40:05       48 阅读
  8. Sklearn支持向量机

    2024-03-14 03:40:05       48 阅读
  9. 腾讯云将系统盘扩容到150G,怎么挂载上去

    2024-03-14 03:40:05       47 阅读
  10. 解决GoLand无法Debug

    2024-03-14 03:40:05       46 阅读
  11. cast数据类型转换

    2024-03-14 03:40:05       45 阅读
  12. 2115. 从给定原材料中找到所有可以做出的菜

    2024-03-14 03:40:05       39 阅读