【二分答案+倍增快速幂】课堂练习

server/2024/11/24 11:22:59/

P1678 烦恼的高考志愿

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m,a[N];long long bs(int x){int l=1,r=n;while(l<=r){int mid=l+r>>1;if(a[mid]==x) return 0;if(a[mid]>x) r=mid-1;else l=mid+1;}//根据前驱后继返回最小差值//printf("前驱%d,后继%d\n",a[r],a[l]);return min(abs(a[r]-x),abs(a[l]-x));
}int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)	scanf("%d",&a[i]);sort(a+1,a+1+n);a[0]=a[n+1]=INT_MAX; // 0x3fffffff  //给每位学生找分数最近的学校long long ans=0;while(m--){int x;scanf("%d",&x);//二分查找返回最接近的差值,找x本身,找不到x那么就找前驱、后继ans+=bs(x);	}printf("%ld",ans);return 0;
}

P1024 [NOIP2001 提高组] 一元三次方程求解

#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;double f(double x){return a*x*x*x+b*x*x+c*x+d;
}int main()
{cin>>a>>b>>c>>d;for(int i=-100;i<100;i++){double l=i,r=i+1;//端点l或者r是答案 if(f(l)==0){printf("%.2lf ",l);continue;} if(f(l)*f(r)<0){//答案在l和r之间while(r-l>0.0001)  // 1/0.00001=10000{double mid=(l+r)/2;if(f(mid)*f(r)<0) l=mid; //f(l)*f(mid)>0else r=mid;}printf("%.2lf ",l);}}return 0;
}

B2062 乘方计算

#include<bits/stdc++.h>
using namespace std;
int a,n;
int main(){//朴素法求a的n次方cin>>a>>n;int ans=1;for(int i=0;i<n;i++)ans*=a;cout<<ans<<endl;//cout<<pow(a,n)<<endl;return 0;
}

P8813 [CSP-J 2022] 乘方

#include<bits/stdc++.h>
using namespace std;
int a,n;int quickm(long long a,long long n){//倍增法求快速幂long long ans=1;while(n){if(a>1e9)  return -1;if(n&1) ans*=a;//如果对应的二进制为1,那么累乘n>>=1;a*=a;//倍增if(ans>1e9) return -1; }return ans;
}int main()
{cin>>a>>n;cout<<quickm(a,n);return 0;
}


http://www.ppmy.cn/server/144528.html

相关文章

大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

大厂Java后端场景面试难题详解(一)

文章目录 两百万个生产者发送消息,仅一个消费者,如何高效设计锁?1. 使用无锁数据结构示例:无锁队列2. 使用轻量级锁示例:`ReentrantLock`3. 使用批量操作示例:批量生产4. 使用分段锁示例:分段锁5. 使用消息队列中间件示例:使用Kafka6. 使用乐观锁示例:乐观锁总结如何在…

Kafka-Consumer理论知识

一、上下文 之前的博客我们分析了Kafka的设计思想、Kafka的Producer端、Kafka的Server端的分析&#xff0c;为了完整性&#xff0c;我们接下来分析下Kafka的Consumer。《Kafka-代码示例》中有对应的Consumer示例代码&#xff0c;我们以它为入口进行分析 二、KafkaConsumer是什…

Kafka-创建topic源码

一、命令创建topic kafka-topics --create --topic quickstart-events --bootstrap-server cdh1:9092 --partitions 2 --replication-factor 2 二、kafka-topics脚本 exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.TopicCommand "$" 脚本中指定了…

超文本传输协议(HTTP)与超文本传输安全协议(HTTPS)

一、HTTP 超文本传输协议&#xff08;HyperText Transfer Protocol&#xff0c;HTTP&#xff09;是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 HTTP 是用于从互联网服务器传输超文本到本地浏览器或者另一个服务器的协议。 HTTP…

dockerdsktop修改安装路径/k8s部署wordpress和ubuntu

1.安装DockerDesktop 1.1下载DockerDesktop 1.2 找到Docker Desktop Installer.exe 重命名 DockerDesktopInstaller.exe 命令安装 #使用命令参数 使用了如下参数 ./dockerdesk.exe install –accept-license --backendwsl-2 –installation-dir‘docker-desktop安装位置’ …

从复合字符串中分割并解析多个JSON字符串

起因 遇到一个情况&#xff0c;在一个字符串中包含了多个json字符串&#xff0c;在后续的处理中需要将其分解开&#xff0c;分成多个独立的json字符串。 在网上找了一下没有找到比较好的处理方法&#xff0c;那么决定自己写一个。 分析 首先&#xff0c;json是通过 {} 包裹的…

信号signal

信号&#xff0c;signal 信号是一种软件中断机制&#xff0c;基于该机制能实现进程间通信&#xff0c;故信号是实现进程通信的一种方式。 信号由内核线程或者用户线程发起生成&#xff0c;例如&#xff0c;SIGINT 信号通常由用户通过按下 CtrlC 产生。 内核中会保存每个进程的…