【蓝桥每日一题]-二分精确(保姆级教程 篇4) #kotori的设备 #银行贷款 #一元三次方程求解

news2024/11/28 10:54:41

今天讲二分精确题型

目录

题目:kotori的设备

 思路:

题目:银行贷款

 思路:

 题目:一元三次方程求解

  思路:


    

       

题目:kotori的设备

       

 思路:

     

求:设备最长使用时间
二分查找:对使用时间进行二分查找
二分依据:该时间可提供的能量(对比该时间需要补充的能量,若超过则增加时间找最优解)  

     

#include <iostream>              
using namespace std;
int n;
double sum,p,l=0,r=1e10;
double a[200000],b[200000];
int check(double ans){   
	double q=p*ans;//这个时间可提供的能量
	sum=0;
	for(int i=0;i<n;i++){
		if(a[i]*ans<=b[i]) 	continue;//设备在该时间内不需要充电
		sum+=(a[i]*ans-b[i]);//否则就计算还需要的额外能量
	}
	return sum<=q;//需要的能量小于等于充电器提供的,则这个时间可以做解
}
int main(){
	cin>>n>>p;
	for(int i=0;i<n;i++){
		cin>>a[i]>>b[i];
		sum+=a[i];
	}
	if(sum<=p){   //若所有设备的消耗能量速度总和还是小于充电器的充电速度,输出-1。
		cout<<-1.000000<<endl;
		return 0;
	}
	while(r-l>1e-6){     //和标准答案相差小于10e-4即可
		double mid=(l+r)/2;
		if(check(mid))  l=mid;//如果mid可以做解,就向右逼近
		else	r=mid;      //如果不能做解,就向左找解
	}
	cout<<l<<endl;
//二分精确就简单多了,r-l控制好精度,到时候就不需要管=在哪里,不需要管输出l,r,mid
	return 0;
}

      

        

题目:银行贷款

       

思路:

       

题意就是在换完每月的钱后,到12月时钱恰好为pay*mon,也就是loan=loan*(1+ans)-pay经过12次循环后为0或逼近0

     
求:月利率
二分查找:对利率进行二分查找(二分精确)
二分依据:该利率下12个月后的贷款
    

#include <iostream>            
#include <cstdio>
using namespace std;
int main(){
	int loan,pay,mon;
	double l=0,r=10,mid,t;            //利率可能大于1
	cin>>loan>>pay>>mon;
	while(r-l>0.0001){                    
		mid=(l+r)/2;
		t=loan;
		for(int i=0;i<mon;i++){
			t=t*(1+mid)-pay;
		}
		if(t>0) r=mid;           //t大于0说明利率太大了,那就调小利率
		else if(t<0) l=mid;
		     else{
		     	printf("%.1f",mid*100);  //(找理想解)可以直接输出
		     	return 0;
			 }
	}
	printf("%.1f",mid*100);  //保留小数点后一位
	return 0;
}

       

      

 题目:一元三次方程求解

      

思路:

    
二分查找:对解进行二分
二分依据:零点定理
     

#include<cstdio>              
double a,b,c,d;
double f(double x)                 //输入自变量,返回函数值
{
    return a*x*x*x+b*x*x+c*x+d;
}
int main()
{
    double l,r,mid,x1,x2;
    int ans=0,i;               //ans是答案个数
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);  
    for (i=-100;i<100;i++)
    {
        l=i; r=i+1; x1=f(l); x2=f(r);   //将每个i分成[i,i+1]区间,然后处理f(i)和f(i+1)符号
        if(x1==0)                     //若i刚好命中就输出(即左端点i刚好是零点)
        {
            printf("%.2lf ",l);     ans++;   //不能判断右端点,会重复
        }      
        if(x1*x2<0)                          //根落在区间时就二分查找
        {
            while(r-l>=0.001)//控制精度                   
            {
                mid=(l+r)/2;  
                if(f(mid)*f(r)<=0)    l=mid;   //向右压缩
                else    r=mid;                 //向左压缩
            }
            printf("%.2lf ",r);            //左右都可以
            ans++;
        }
        if (ans==3)  break;             
    }
    return 0;
}

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

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

相关文章

Linux难学?大神告诉你,Linux到底该怎么自学!

文章目录 前言一、明白这些道理&#xff0c;Linux 就不难学二、五步学会 Linux 命令行&#xff0c;用好这本手册三、Linux 学习进阶之路 前言 知乎上有一条热门问答&#xff0c;问题是 “Linux为什么那么难&#xff1f;” 从问题来看&#xff0c;提问者还处在初学阶段。但他显…

Centos7扩容

Centos7扩容 保证虚拟机关机且没有快照的情况下按照下图进行操作&#xff1a; 设置好后开机&#xff0c;查看分区情况&#xff1a; [rootlocalhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 17G 12G 5.4G 69% / …

21款奔驰GLS450升级23P驾驶辅助 智驾出行

驾驶辅助和自动驾驶的区别就是需要人为去接管&#xff0c;虽然车辆会根据道路自己行驶&#xff0c;弯道上也能居中自动修正行驶&#xff0c;长时间不接管方向盘&#xff0c;系统会提示人为接管&#xff0c;这就是奔驰的23P驾驶辅助系统&#xff0c; 很多车友升级23P驾驶辅助系…

Git统计个人提交代码行数

目录 一、git bash打开二、查看个人提交的代码行数统计三、查看项目每个人提交的代码行数统计四、查询所有用户的提交总次数五、统计用户一段时间内的提交代码量 在实际开发中&#xff0c;常常会想查看自己对于某个项目的贡献&#xff0c;管理者会查看项目下各成员的贡献&#…

mysql、clickhouse时间日期加法

mysql 在’2023-10-27 23:59:59’上增加5秒&#xff1a; SELECT DATE_ADD(2023-10-27 23:59:59, INTERVAL 5 second);clickhouse SELECT date_add(SECOND, 3, toDate(2018-01-01 00:00:00));clickhouse时间按秒、分、时、日、月、年作差 按秒&#xff1a; SELECT dateDiff…

【DataGrip使用小技巧】

在日常开发中无论是连接数据库也好&#xff0c;编写代码也好都是通过DataGrip来实现的&#xff0c;在开发过程中有一些小技巧的使用可以使开发变得高效便捷。 【非常实用】要快速查看插入符号处的表或列的文档,请按 ctrl Q(查看快速文档)。 可以显示首几行的数据&#xff0c…

团队表 -多级团队设计

团队表 -多级团队设计 user_team团队表 &#xff0c;如果存在子团队 1.我们可以通过每一个团队字段加一个parentid &#xff08;相当于一对多的关系&#xff09; 2.还可以设置一个字段CodingNum,比如这样: //系统为了管理查询团队自动生成的有序编号 可以使用3位数代表一个…

MobaXterm 连接虚拟机很慢

1. 打开配置文件 ​ vi /etc/ssh/sshd_config2. 修改配置文件 1&#xff09;修改 GSSAPIAuthentication值 为 no GSSAPIAuthentication&#xff1a;默认开启了 GSSAPIAuthentication 认证&#xff08;大多数情况下GSSAPI认证就是Kerberos认证&#xff09; 2&#xff09;取消…

聚观早报 |智界 S7将开启预售;vivo X100系列定档

【聚观365】11月3日消息 智界 S7将开启预售 vivo X100系列定档 苹果发布第四财季财报 Model 3交付范围扩大 三星Galaxy S23 FE上架 智界 S7将开启预售 据多家媒体报道&#xff0c;华为智选车业务首款轿车智界 S7 于 11 月 9 日正式开启预售&#xff0c;华为智能汽车解决方…

Python机器学习算法入门教程

机器学习&#xff08;Machine Learning&#xff0c;简称 ML&#xff09;是人工智能领域的一个分支&#xff0c;也是人工智能的核心&#xff0c;其涉及知识非常广泛&#xff0c;比如概率论、统计学、近似理论、高等数学等多门学科。 机器学习的目的是设计、分析一些让计算机可以…

JS_变量定义

定义变量 关键字var var 的作用域比较大 全局变量可以重复定义 &#xff08;变量名可以重复使用&#xff09;最下面的值算 定义方式 var a12; var b"你好"; let 定义方式 let是局部变量 在大括号里定义外面访问不了 不可以重复定义 const 定义方式 const 的…

使用 Python 进行自然语言处理第 4 部分:文本表示

一、说明 本文是在 2023 年 3 月为 WomenWhoCode 数据科学跟踪活动发表的系列文章中。早期的文章位于&#xff1a;第 1 部分&#xff08;涵盖 NLP 简介&#xff09;、第 2 部分&#xff08;涵盖 NLTK 和 SpaCy 库&#xff09;、第 2 部分&#xff08;涵盖NLTK和SpaCy库&#xf…

32 mysql in 的实现

前言 这里我们主要是来探讨一下 mysql 中 in 的使用, find_in_set 的使用 这两者 在我们实际应用中应该也是 非常常用的了 测试数据表如下 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(16) DEFAULT NULL,field2 varchar(16) DEFAU…

ElasticSearch集群架构实战及其原理剖析

ES集群架构 为什么要使用ES集群架构 分布式系统的可用性与扩展性&#xff1a; 高可用性 服务可用性&#xff1a;允许有节点停止服务&#xff1b;数据可用性&#xff1a;部分节点丢失&#xff0c;不会丢失数据&#xff1b; 可扩展性 请求量提升/数据的不断增长(将数据分布…

1688商品评论API接口(评论内容|日期|买家昵称|追评内容|评论图片|评论视频..)

一般来说&#xff0c;1688商品评论API接口可以用于获取1688平台上商品评论的数据。通过该接口&#xff0c;您可以获取到商品评论的详细信息&#xff0c;包括评论内容、评论时间、评论者信息等。 要使用1688商品评论API接口&#xff0c;您需要完成以下步骤&#xff1a; 在1688…

MySQL BinLog实战应用之二

一、前言 上篇 MySQL Binlog实战应用之一 主要讲了BinLog的开启以及用MySQLBinLog读取BigLog二进制文件&#xff0c;但MySQLBinLog很难直接对接Java&#xff0c;所以有了Canal这个Alibaba开发的用于MySQL增量日志解析&#xff0c;提供增量数据的订阅和消费组件。 二、Canal原…

117. 填充每个节点的下一个右侧节点指针 II : 详细图解 O(1) 空间构建过程

题目描述 这是 LeetCode 上的 「117. 填充每个节点的下一个右侧节点指针 II」 &#xff0c;难度为 「中等」。 Tag : 「BFS」、「链表」 给定一个二叉树&#xff1a; struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next 指针&#xff0c;让这…

【256MB+256MB】起,含税低至88元!飞凌嵌入式FET113i-S全国产核心板上市

超低价、超灵活、超全能&#xff01;飞凌嵌入式FET113i-S全国产核心板正式发布&#xff01;整板采用100%国产工业级元器件&#xff0c;含税价最低仅需88元&#xff01; FET113i-S核心板基于全志T113-i工业级处理器开发设计&#xff0c;主频1.2GHz&#xff0c;配备多核多架构&a…

2023 冬季波卡黑客松先导预告:三大赛题、30 万美金奖赏 Web3 探险者!

用「熊市」形容 2023 年的 web3 行业似乎并不准确。狂热之后的巨头暴雷、黑客攻击和投资锐减并未使 web3 发展停滞。比特币 ETF 进展引人瞩目&#xff0c;新的技术进展、新的 web3 物种也正在出现&#xff0c;而 AI 等技术的发展也在为 web3 应用带来新的想象力。2023 或许又是…

微信小程序-form表单-获取用户输入文本框的值

微信小程序-form表单-获取用户输入文本框的值 data: {userName: ,userPwd:""},//获取用户输入的用户名 userNameInput:function(e) {this.setData({userName: e.detail.value}) }, passWdInput:function(e) {this.setData({userPwd: e.detail.value}) }, //获取用户输…