二分与前缀和

789. 数的范围 - AcWing题库 

import java.util.*;public class Main{static int N = 100010;static int[] a = new int[N];public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();for(int i = 0; i < n; i ++){a[i] = sc.nextInt();}while(m -- > 0){int x = sc.nextInt();int l = 0, r = n - 1;while(l < r){int mid = l + r >> 1;if(a[mid] >= x) r = mid;//找到区间的左端点(区分大于等于x的和小于x的)else l = mid + 1;}if(a[l] != x) System.out.println("-1 -1");else{System.out.print(l + " ");l = 0;r = n - 1;while(l < r){int mid = l + r + 1 >> 1;if(a[mid] <= x) l = mid;//找到区间的右端点(区分小于等于x的和大于x的)else r = mid - 1;}System.out.println(l);}}}
}

790. 数的三次方根 - AcWing题库

import java.util.*;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);double x = sc.nextDouble();double l = -100, r = 100;while(r - l > 1e-8){double mid = (l + r) / 2;if(mid * mid * mid >= x) r = mid;else l = mid;}System.out.printf("%.6f", l);}
}

 795. 前缀和 - AcWing题库

import java.util.*;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int N = 100010;int[] a = new int[N];int[] b = new int[N];int n = sc.nextInt();int m = sc.nextInt();for(int i = 1; i <= n; i ++){a[i] = sc.nextInt();//数组的每个数}for(int i = 1; i <= n; i ++){b[i] = b[i - 1] + a[i];//前缀和}while(m -- > 0){int l = sc.nextInt();int r = sc.nextInt();System.out.println(b[r] - b[l - 1]);}}
}

796. 子矩阵的和 - AcWing题库

import java.util.*;public class Main{static int N = 1010;static int[][] a = new int[N][N];//每个位置的值static int[][] s = new int[N][N];//二维前缀和public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int q = sc.nextInt();for(int i = 1; i <= n; i ++){for(int j = 1; j <= m; j ++){a[i][j] = sc.nextInt();}}for(int i = 1; i <= n; i ++){for(int j = 1; j <= m; j ++){s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + a[i][j];}}while(q -- > 0){int x1 = sc.nextInt();int y1 = sc.nextInt();int x2 = sc.nextInt();int y2 = sc.nextInt();System.out.println(s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1]);}}
}

1227. 分巧克力 - AcWing题库

import java.util.*;public class Main{static int N = 100010;static int n, m;static int[] h = new int[N];static int[] w = new int[N];public static boolean check(int x){int res = 0;for(int i = 1; i <= n; i ++){res += (h[i] / x) * (w[i] / x);}if(res >= m) return true;return false;}public static void main(String[] args){Scanner sc = new Scanner(System.in);n = sc.nextInt();m = sc.nextInt();int max = 0;for(int i = 1; i <= n; i ++){h[i] = sc.nextInt();w[i] = sc.nextInt();max = Math.max(h[i], max);max = Math.max(w[i], max);}int l = 0, r = max;while(l < r){int mid = l + r + 1>> 1;if(check(mid)) l = mid;else  r = mid - 1;}System.out.print(l);}
}

 

1230. K倍区间 - AcWing题库

import java.util.*;public class Main{static int N = 100010;static long[] a = new long[N];static long[] s = new long[N];//前缀和static long[] cnt = new long[N];//模k余数为xstatic int n, k;public static void main(String[] args){Scanner sc = new Scanner(System.in);n = sc.nextInt();k = sc.nextInt();for(int i = 1; i <= n; i ++){a[i] = sc.nextInt();}for(int i = 1; i <= n; i ++){s[i] = s[i - 1] + a[i];}long res = 0;cnt[0] = 1;//初始化余数为0也是一种情况for(int i = 1; i <= n; i ++){res += cnt[(int)(s[i] % k)];//在还没有改变模k的余数为x的前缀和的个数之前,加到答案中cnt[(int)(s[i] % k)] ++;//个数加1}System.out.print(res);}
}

 

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

import java.util.*;public class Main{static int N = 100010;static int[] h = new int[N];static int n, max;public static boolean check(int x){for(int i = 1; i <= n; i ++){x = 2 * x - h[i];if(x >= max) return true;//只要存在能量大于等于最大值,就已经可以保证了if(x < 0) return false;}return true;}public static void main(String[] args){Scanner sc = new Scanner(System.in);n = sc.nextInt();max = 0;for(int i = 1; i <= n; i ++){h[i] = sc.nextInt();max = Math.max(max, h[i]);}int l = 0, r = N;while(l < r){int mid = l + r >> 1;if(check(mid)) r = mid;else l = mid + 1;}System.out.print(l);}
}

 

1221. 四平方和 - AcWing题库

import java.util.*;class PII implements Comparable<PII>{int a, b, c;public PII(int a, int b, int c){this.a = a;this.b = b;this.c =c;}public int compareTo(PII o){if(a != o.a) return Integer.compare(a, o.a);if(b != o.b) return Integer.compare(b, o.b);return Integer.compare(c, o.c);}
}public class Main{static int N = 2500010;static PII[] sum = new PII[N];static int n, m;public static void main(String[] args){Scanner sc = new Scanner(System.in);n = sc.nextInt();for(int c = 0; c * c <= n; c ++){for(int d = c; d * d + c * c <= n; d ++){sum[m ++] = new PII(d * d + c * c, c, d);}}Arrays.sort(sum, 0, m);//按照定义的次序排序for(int a = 0; a * a <= n; a ++){for(int b = a; b * b + a * a <= n; b ++){int t = n - (a * a + b * b);//通过二分判断这个t是否在sum数组中出现过int l = 0, r = m - 1;while(l < r){int mid = l + r >> 1;if(sum[mid].a >= t) r = mid;else l = mid + 1;}if(sum[l].a == t){System.out.print(a + " " + b + " " + sum[l].b + " " + sum[l].c);return;} }}}
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-16 计算符号函数的值

对于任一整数n&#xff0c;符号函数sign(n)的定义如下&#xff1a; 请编写程序计算该函数对任一输入整数的值。 输入格式: 输入在一行中给出整数n。 输出格式: 在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。 输入样例1: 10输出样例1: sign(10) 1输入样…

跨域报错(预请求(OPTIONS)的问题)

查原因 是预请求(OPTIONS)的问题 解决方法&#xff08;后端改&#xff09; 指路博客.NET处理VUE OPTIONS请求问题_.net option请求-CSDN博客

GTH手册学习注解

CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式&#xff0c;对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段&#xff0c;复位是自动发生的&#xff1f;说明可能起效了&#xff0c;但是分…

本地GenAI工具箱:Mixlab-nodes

在去年暑期夏令营上&#xff0c;我在[ 人工智能创作与数字艺术 ]这门课上重点讲解了叙事技术的发展&#xff0c;当时市面上没有一体化的解决方案&#xff0c;只能零散地使用各种产品or开源项目。 今年&#xff0c;我们的课程上将使用一体化的解决方案&#xff0c;实践叙事技巧并…

使用 Docker 部署 Stirling-PDF 多功能 PDF 工具

1&#xff09;Stirling-PDF 介绍 大家应该都有过这样的经历&#xff0c;面对一堆 PDF 文档&#xff0c;或者需要合并几个 PDF&#xff0c;或者需要将一份 PDF 文件拆分&#xff0c;又或者需要调整 PDF 中的页面顺序&#xff0c;找到的线上工具 要么广告满天飞&#xff0c;要么 …

果蔬作物疾病防治系统|基于Springboot的果蔬作物疾病防治系统设计与实现(源码+数据库+文档)

果蔬作物疾病防治系统目录 目录 基于Springboot的果蔬作物疾病防治系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、果蔬百科列表 2、公告信息管理 3、公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

STM32_3-1点亮LED灯与蜂鸣器发声

STM32之GPIO GPIO在输出模式时可以控制端口输出高低电平&#xff0c;用以驱动Led蜂鸣器等外设&#xff0c;以及模拟通信协议输出时序等。 输入模式时可以读取端口的高低电平或电压&#xff0c;用于读取按键输入&#xff0c;外接模块电平信号输入&#xff0c;ADC电压采集灯 GP…

【考研数学】打基础,张宇《30讲》还是武忠祥《基础篇》?

张宇的30讲还是不太适合零基础的考研党去听...因为宇哥整体节奏较快&#xff0c;如果目标分较高&#xff0c;有一定的基础还是建议的 身边真的很多130-140的大佬都是跟着张宇从头到尾&#xff0c;张宇老师的习题册非常适合基础扎实&#xff0c;想冲刺高分的考研党 我是属于基…

docker-swarm集群搭建

目录 一、docker swarm介绍 二、部署docker 三、搭建集群 3.1 工作模式 3.2 将当前主机作为leader 3.3 将第二个节点slave1加入到worker 3.4 将第三个节点slave2也加入到worker 3.5 将第四个节点(slave3)加入到manager 四、总结 一、docker swarm介绍 Docker Swarm…

【OpenCV】如何在Linux操作系统下正确安装 OpenCV

前言 我是在虚拟机上跑的 Linux 5.8.0-44-generic。 配置如下&#xff1a; 目录 第一步&#xff1a;下载依赖文件 第二步&#xff1a;下载 opencv 和 opencv_contrib 源码 第三步&#xff1a;解压缩包 第四步&#xff1a;移动文件 第五步&#xff1a;生成 makefile 文件 …

Linux高级IO之poll

(&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨&#xff01;你好这里是ky233的主页&#xff1a;这里是ky233的主页&#xff0c;欢迎光临~https://blog.csdn.net/ky233?typeblog 点个关注不迷路⌯▾⌯ 目录 一、poll函数接口 1.接口 2.poll做了什么工…

C++程序设计-第六/七/八章 运算符重载/包含与继承/虚函数和多态性【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…