牛可乐和魔法封印当区间具有二段性的时候就用二分来做。本题的意思就是找到数组中值为[x, y]区间的长度。由于是递增序列那么必然存在二段性直接用二分去做。唯一要注意的就是数组里可能不存在x或者y二分查找出来的必然是x的最小元素与y的最大元素因此分别查找出来的两个下标的元素也要算上它们也是属于[x, y]的所以区间长度的计算方式就是r-l1。#includeiostream using namespace std; const int N 1e5 10; int n; int a[N]; int find1(int x) { int l 1, r n; while(l r) { int mid l (r - l) / 2; if(a[mid] x) r mid; else l mid 1; } //如果元素全是小于x的就不合法了 if(a[l] x) return -1; return l; } int find2(int y) { int l 1, r n; while(l r) { int mid l (r - l 1) / 2; if(a[mid] y) l mid; else r mid - 1; } if(a[l] y) return -1; return l; } int main() { cin n; for(int i 1;i n;i) cin a[i]; int q 0; cin q; while(q--) { int x 0, y 0; cin x y; int l find1(x); int r find2(y); if(l ! -1 r ! -1) cout r - l 1 endl; else cout 0 endl; } return 0; }P1102 A-B 数对 - 洛谷题目的意思是找出所有满足A-BC的序列那移个项不就是要求我们找出所有满足等于BC的数字个数嘛如果序列是有序的话并且假设BC2的话那不就相当于找序列中2的个数嘛找到2的起始位置和结束位置不就相当于找到了嘛然后题目又说不同位置的数字一样的数对算不同的数对因此我们统计的时候用叠加去统计。所以思路就出来了排序二分。#includeiostream using namespace std; #includealgorithm typedef long long LL; LL n, c; const int N 2e5 10; LL a[N]; //找到序列中x的个数 int find(LL x) { int l 1, r n; while(l r) { int mid l (r - l) / 2; if(a[mid] x) r mid; else l mid 1; } //由于区间里可能根本没有x因此额外判断一下 int xl 0; if(a[l] ! x) return 0; xl l; l 1, r n; while(l r) { int mid l (r - l 1) / 2; if(a[mid] x) l mid; else r mid - 1; } int xr 0; if(a[l] ! x) return 0; xr l; //区间长度就是x的个数 return xr - xl 1; } int main() { cin n c; for(int i 1;i n;i) cin a[i]; sort(a 1, a 1 n); LL ret 0; for(int i 1;i n;i) { //A B C LL A a[i] c; ret find(A); } cout ret; return 0; }P1678 烦恼的高考志愿 - 洛谷注意如果发生越界访问加左右护法是一个好选择。#includeiostream using namespace std; #includealgorithm typedef long long LL; const int N 1e5 10; LL a[N]; int m, n; //找到离x最近的两个值返回最近的那个距离x的差值的绝对值 LL find(LL x) { //找到x的最小值 int l 1, r m; while(l r) { int mid l (r - l) / 2; if(a[mid] x) r mid; else l mid 1; } return min(abs(a[l - 1] - x), abs(a[l] - x)); } int main() { cin m n; for(int i 1;i m;i) cin a[i]; sort(a 1, a 1 m); a[0] -1e7; LL ret 0; for(int i 1;i n;i) { int x 0; cin x; //x就是每一次读取进来的高考估分 //这里有可能数值溢出 ret find(x); } cout ret; return 0; }P2440 木材加工 - 洛谷#includeiostream using namespace std; #includealgorithm typedef long long LL; const int N 1e5 10; LL n, k; LL a[N]; LL calc(LL mid) { LL sum 0; for(int i 1;i n;i) { //长度不够的话除完也是0 sum a[i] / mid; } return sum; } int main() { cin n k; for(int i 1;i n;i) cin a[i]; sort(a 1, a 1 n); LL l 1, r a[n]; //这里是从左往右len在增大获得的num在减小 //因此这里就变成了k左边kk右边k和博客里画的二分图正好反了 while(l r) { LL mid l (r - l 1) / 2; if(calc(mid) k) l mid; else r mid - 1; } //本题相当于是查找区间中k的最小k所对应的最大的len //有可能没有满足的情况要额外判断 if(calc(l) k) cout l endl; else cout 0 endl; return 0; }P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷#includeiostream using namespace std; typedef long long LL; const int N 1e6 10; int n, m; LL a[N]; LL calc(LL x) { LL ret 0; for(int i 1;i n;i) { if(a[i] x) ret a[i] - x; } return ret; } int main() { cin n m; for(int i 1;i n;i) cin a[i]; //题目给出的树的高度是4e5的所以其实可以不排序直接二分 LL l 1, r 4e5 10; while(l r) { LL mid l (r - l 1) / 2; if(calc(mid) m) l mid; else r mid - 1; } if(calc(l) m) cout l; else cout 0; return 0; }P2678 [NOIP 2015 提高组] 跳石头 - 洛谷#includeiostream using namespace std; typedef long long LL; const int N 5e4 10; LL L, n, m; LL a[N]; //最短跳跃距离为x时所要移走的岩石数 //calc天然就解决了担心的a[j]-a[i]mid直至j走到n1 //此时算出的sum会很大二分的时候必然会将这种情况过滤掉 LL calc(LL x) { LL sum 0; LL i 0, j 1; while(j n 1) { while(j n 1 a[j] - a[i] x) { j; } sum j - i - 1; i j; } return sum; } int main() { cin L n m; for(int i 1;i n;i) cin a[i]; //n表示起点到终点的岩石数不包括起点和终点 //因此还需要更新n到n1两块岩石之间的距离 //0~1这两块岩石间的距离就是a[1]所以不用去管了 a[n1] L; LL l 1, r L; while(l r) { LL mid l (r - l 1) / 2; if(calc(mid) m) l mid; else r mid - 1; } if(calc(l) m) cout l endl; return 0; }
企业数字化 ERP 产品动态
相关推荐
用UltraEdit宏从大文件中提取内容:TaoToken统一Key接入配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:08:59
杭州化妆品网站建设避坑指南:从设计到代码的实操详解 杭州化妆品网站建设避坑指南:从设计到代码的实操详解 域名买错了,服务器配置跟不上,化妆品官网在客户眼里就是“半吊子”工程。很多杭州的化妆品品牌方在找开发团队时,最头疼的不是价格,而是 域名服务器搞不懂… · 2026/9/27 22:08:59
不用敲命令!OpenClaw 3.1.0 中文版可视化搭建桌面自动化 Agent 📖 前言
本文面向 Windows 系统用户,系统梳理 OpenClaw 的标准化部署流程。全程无需输入任何命令行,所有操作均依托可视化向导完成,即便是零基础用户也能独立走完整套部署。文中同时汇总了高频报错的对应解决方案,力求… · 2026/9/27 22:08:52
添加位置wordpress哪家好?3个关键细节决定网站专业度 添加位置wordpress哪家好?3个关键细节决定网站专业度 域名服务器搞不懂?选建站公司哪家好?很多老板在决定上线网站前,卡在技术选型上。看着满屏的术语:响应式、SEO权重、SSL证书、W3C标准,心里直打鼓。其实,选对建站服务商,核心看… · 2026/9/27 22:39:38
不懂代码也能做?旅游论坛网站建设对比评测与SEO实操 不懂代码也能做?旅游论坛网站建设对比评测与SEO实操 想搞个旅游论坛,但看着满屏的代码就头疼?别慌,这行我干了十年,见过太多老板想自己动手却卡在第一步。今天咱们不整虚的,直接上干货,聊聊 旅游论坛网站建设… · 2026/9/27 22:39:38
人工智能会替代程序员吗? 现在, 智能编程已经在社会上普及开了, 这让一部分在软件行业工作的人心里产生了压力。同时, 社会上也在议论纷纷, 有人担心人工智能会把程序员的工作给替掉。在9月11日, 工业和信息化部举办了一场所谓的新闻发布会, 专门用来介绍《“人工智能软件”专项行动实施方案》这件事去了… · 2026/9/27 22:39:32
如何利用python做金融数据分析 做金融数据分析, 可以按照下面的顺序来一步步地实现: 第一个步骤叫作数据获取, 第二个步骤叫作数据清洗与预处理, 第三个步骤叫作数据分析与可视化, 第四个步骤叫作模型构建与预测, 最后一个步骤叫作结果评估和优化, 在这些步骤里面, 数据获取是排在第一位的, 同时也是一件非常… · 2026/9/27 22:39:32
探秘常州全屋定制本地工厂,竟有这些不为人知的秘密! 全屋定制近年来在装修市场中备受青睐,它能够根据消费者的需求和空间特点,提供个性化的家居解决方案。然而,市场上的全屋定制品牌众多,质量和服务参差不齐。为了帮助消费者更好地选择适合自己的全屋定制本地厂家,我们对… · 2026/9/27 22:39:32
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01