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

news2024/11/16 20:43:15

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

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

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;
}

730. 机器人跳跃问题 - AcWing题库

//二分求解
#include<bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

int n;
int h[N];
int maxh=-0x3f3f;
bool check(int x){
    for(int i = 1; i <= n; i++)
    {
        x = 2 * x - h[i];
        if(x < 0) return false;
        if(x > maxh) return true;//加速
        //因为公式是 2E-h[i]如果已经大于最高高度了 那么后面一定越来越大
    }
    return true;
}

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) {
      cin >> h[i];
      maxh=max(maxh,h[i]);
}
    int l = 1, r = 1e5;
    while(l < r)
    {
        int mid = l + r >> 1;
        if(check(mid)) r = mid;
        else l = mid + 1; 
    }

    cout << l << '\n';

    return 0;
}

 

//递推解方程
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;

int n;
int h[N];
double p[N];//存放2的次幂

int main(){
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> h[i];

    p[0] = 1;//2^0=1

    double res = 0;
    for(int i = 1; i <= n; i++)
    {
        p[i] = p[i - 1] * 2;
        res += (1.0 / p[i]) * h[i];
    }

    cout << ceil(res) << '\n';

    return 0;
}

 1221. 四平方和 - AcWing题库

//写法1:暴力
#include <bits/stdc++.h>
using namespace std;
const int N = 5e6+7;
int n;
signed main () {
    int n;cin>>n;
    for(int a=0;a*a<=n;a++){
    	for(int b=a;a*a+b*b<=n;b++){
    		for(int c=b;a*a+b*b+c*c<=n;c++){
    			int temp=n-(a*a+b*b+c*c);
    			int d=sqrt(temp);//注意这里的处理 保证是一个平方数
    			if(d*d==temp&&d>=c){
    				printf("%d %d %d %d",a,b,c,d);
    				return 0;
				}
			}
		}
	}
	return 0;
}

 

//写法2:排序后二分
#include <bits/stdc++.h>
using namespace std;
const int N = 5e6+7;
int n;
struct sum{
	int s,c,d;
	bool operator<(const sum &t)const{
		if(s!=t.s)return s<t.s;
		if(c!=t.c)return c<t.c;
		return d<t.d;
	}
}sum[N];
int m=1;
signed main () {
    int n;cin>>n;
    for(int c=0;c*c<=n;c++){
    	for(int d=c;c*c+d*d<=n;d++){
    		sum[m++]={c*c+d*d,c,d};
		}
	}
	sort(sum,sum+m);
	for(int a=0;a*a<=n;a++){
		for(int b=a;a*a+b*b<=n;b++){
			int t=n-a*a-b*b;
			int l=1,r=m;
			while(l<r){
				int mid=l+r>>1;
				if(sum[mid].s>=t)r=mid;
				else l=mid+1;//尽量向左边找 
			}
			if(sum[l].s==t){
				printf("%d %d %d %d\n",a,b,sum[l].c,sum[l].d);
				return 0;
			}
		}
	}
	return 0;
}

 

//解法3:unordered_map 自带的哈希表 但是会超时 可以用手写哈希表优化
#include <bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;

const int N = 5e6+7;
int n;
unordered_map<int, pair<int,int> > has;

signed main() {
    cin >> n;

    for (int c = 0; c * c <= n; c++) {
        for (int d = c; c * c + d * d <= n; d++) {
            int t = c * c + d * d;
            if (has.count(t) == 0) has[t] = {c, d};
        }
    }

    for (int a = 0; a * a <= n; a++) {
        for (int b = a; a * a + b * b <= n; b++) {
            int t = n - a * a - b * b;
            if (has.count(t)) {
                printf("%d %d %d %d\n", a, b, has[t].x, has[t].y);
                return 0;
            }
        }
    }

    return 0;
}

 

//写法3:模拟哈希表
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N = 5e6 + 10;
int n;
int has[N * 2];//小技巧,避免pair,r[c^2+d^2]=c;可以推导出d
模拟哈希表

int main(){
    cin >> n;

    memset(has, -1, sizeof has);

    for(int c = 0; c * c <= n; c++)
    {
        for(int d = c; c * c + d * d <= n; d++)
        {
            int t = c * c + d * d;
            if(has[t] == -1)//如果存过才存 为了保证字典序最小
            {
                has[t] = c;//只存下来c就可以了
            }
        }
    }

    for(int a = 0; a * a <= n; a ++)
    {
        for(int b = a; a * a + b * b <= n; b++)
        {
            int t = n - a * a - b * b;
            int c = has[t];
            if(has[t] == -1) continue;
            int d = sqrt(t - c * c);//这里已经能保证是一个平方数了
            printf("%d %d %d %d\n", a, b, c, d);
            return 0;
        }
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1526589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaSE综合练习-图书系统1.0

Main import book.BookList; import user.AdminUser; import user.NormalUser; import user.User; import java.util.Scanner;//程序入口函数 public class Main {public static User login(){Scanner scannernew Scanner(System.in);System.out.println("请输入你的姓名…

HTML表格(HTML 表格的使用,收藏这一篇就够了)

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 今天聊聊 table。HTML <table> 元素用于创建表格&#xff0c;它是一种将数据按行和列组织排列的结构&#xff0c;用于在网页中呈现复杂的数据集。HTML 表格具有以下 2 种主要用途&#x…

java方法的引用传递和值传递

1、方法的值参数传递 下面代码&#xff0c;它会在控制台输出什么&#xff1f; public class ArrayTest {public static void main(String[] args) {int number 100;System.out.println(number);change(number);System.out.println(number);}public static void change(int n…

Qt学习--继承(并以分文件实现)

基类 & 派生类 一个类可以派生自多个类&#xff0c;这意味着&#xff0c;它可以从多个基类继承数据和函数。定义一个派生类&#xff0c;我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名。 总结&#xff1a;简单来说&#xff0c;父类有的&#xff0c;子…

【Paper Reading】6.RLHF-V 提出用RLHF的1.4k的数据微调显著降低MLLM的虚幻问题

分类 内容 论文题目 RLHF-V: Towards Trustworthy MLLMs via Behavior Alignment from Fine-grained Correctional Human Feedback 作者 作者团队&#xff1a;由来自清华大学和新加坡国立大学的研究者组成&#xff0c;包括Tianyu Yu, Yuan Yao, Haoye Zhang, Taiwen He, Y…

[SaaS] 淘宝设计AI

“淘宝设计AI” 让国际大牌造世界双11超级品牌 超级发布https://mp.weixin.qq.com/s/xFVDARQHxlweKAYG91DtYw下面是一个完整的品牌营销海报设计流程&#xff0c;AIGC起到了巨大作用&#xff0c;但是仍然很难去一步解决这个问题&#xff0c;还是逐步修改的一个过程。 Midjouner…

java 面向对象--equals方法

Object 类的使用 类 java.lang.Object是类层次结构的根类&#xff0c;即所有其它类的父类。每个类都使用 Object 作为超类。 Object类型的变量与除Object以外的任意引用数据类型的对象都存在多态引用 method(Object obj){…} //可以接收任何类作为其参数 Person o new Person…

【NTN 卫星通信】 TN和多NTN配合的应用场景

1 场景描述 此场景描述了农村环境&#xff0c;其中MNO (运营商TerrA)仅在城市附近提供本地地面覆盖&#xff0c;而MNO (SatA)提供广泛的NTN覆盖。SatA使用GSO轨道和NGSO轨道上的卫星。SatA与TerrA有漫游协议&#xff0c;允许:   所有TerrA用户的连接&#xff0c;当这些用户不…

超分之SwinIR

SwinIR: Image restoration using Swin TransformerSwinIR: 使用Swin Transformer 进行图像恢复Liang J, Cao J, Sun G, et al.Proceedings of the IEEE/CVF international conference on computer vision. 2021: 1833-1844. 摘要 首先&#xff0c;介绍了Image restoration的含…

Ingress 基于URL路由多个服务

文章目录 前言一、基于请求地址转发不同应用的pod1.创建一个nginx的pod和一个apache的pod及其各自的service2.创建ingress实现一个地址两个path分别访问nginx和apache3.验证根据域名web2.study.com的两个路径/foo和/bar来访问到不同的pod4.分别在nginx和apache的pod里创建网站目…

win32汇编弹出对话框

之前书上有一个win32 asm 的odbc例子&#xff0c;它有一个窗体&#xff0c;可以执行sql&#xff1b;下面看一下弹出一个录入数据的对话框&#xff1b; 之前它在.code段包含2个单独的asm文件&#xff0c;增加第三个&#xff0c;增加的这个里面是弹出对话框的窗口过程&#xff0…

Python--类中作用域

1、在面向对象编程中&#xff0c;主要的变量就是成员变量&#xff08;属性&#xff09;和局部变量 class Cat:# 属性name Noneage None# n1, n2, result为局部变量def cal(self, n1, n2):result n1 n2print(f"result{result}") 2、作用域的分类&#xff1a;属性…

Vue3-03_组件基础_上

单页面应用程序 什么是单页面应用程序 单页面应用程序&#xff08;英文名&#xff1a;Single Page Application&#xff09;简称 SPA&#xff0c;顾 名思义&#xff0c;指的是一个 Web 网站中只有唯一的一个 HTML 页面&#xff0c;所有的 功能与交互都在这唯一的一个页面内完…

09|代理(上):ReAct框架,推理与行动的协同

应用思维链推理并不能解决大模型的固有问题&#xff1a;无法主动更新自己的知识&#xff0c;导致出现事实幻觉。也就是说&#xff0c;因为缺乏和外部世界的接触&#xff0c;大模型只拥有训练时见过的知识&#xff0c;以及提示信息中作为上下文提供的附加知识。如果你问的问题超…

Fitten Code对JetBrains支持再升级,新增7大功能

十科技基于计图框架&#xff0c;推出基于代码大模型的 AI 代码助手 ——Fitten Code&#xff0c;今天&#xff0c;Fitten Code再升级&#xff0c;新增7大功能。特此转载。 「一键开启编程新时代&#xff0c;Fitten Code 对 JetBrains 支持再升级&#xff01;」 Fitten Code代码…

新火种AI|英伟达GTC大会在即,它能否撑住场面,为AI缔造下一个高度?

作者&#xff1a;小岩 编辑&#xff1a;彩云 英伟达不完全属于AI行业&#xff0c;但神奇的是&#xff0c;整个AI领域都有着英伟达的传说。因为几乎所有的AI巨头都需要英伟达的芯片来提供算力支持。 也正因此&#xff0c;纵使AI赛道人来人往&#xff0c;此起彼伏&#xff0c;…

zabbix企业微信接入结合海螺问问编写的shell脚本

前言 博客懒得写详细了&#xff0c;视频剪的累死了&#xff0c;看视频就好了 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 shell脚本 #!/bin/bash #set -x CorpID"" #我的企业下面的CorpID Secret"" #创建的应用那…

阿里云服务器计算型、通用型、内存型各实例计算、存储等性能介绍

在阿里云目前的活动中&#xff0c;属于计算型实例规格的云服务器有计算型c7、计算型c7a、计算型c8a、计算型c8y这几个实例规格&#xff0c;属于通用型实例规格的云服务器有通用型g7、通用型g7a、通用型g8a、通用型g8y&#xff0c;属于内存型实例规格的云服务器有内存型r7、内存…

Linux信号机制(二)

目录 一、信号的阻塞 二、信号集操作函数 三、sigprocmask函数 四、pause函数 五、sigsuspend函数 一、信号的阻塞 有时候不希望在接到信号时就立即停止当前执行&#xff0c;去处理信号&#xff0c;同时也不希望忽略该信号&#xff0c;而是延时一段时间去调用信号处理函数。…

【闲聊】-后端框架发展史

框架&#xff0c;是为了解决系统复杂性&#xff0c;提升开发效率而产生的工具&#xff0c;主要服务于研发人员。 当然&#xff0c;框架还有更深层的作用&#xff0c;框架的沉淀是一种高级的抽象&#xff0c;会将人类的业务逐步抽象为统一标准又灵活可变的结构&#xff0c;为各行…