当前位置: 首页 > news >正文

南宁网站建设哪个好手机怎么打开禁止访问的网站

南宁网站建设哪个好,手机怎么打开禁止访问的网站,wordpress 子菜单顺序,建行官网登录入口原题描述: 题目精炼: 给定N个建筑物的位置和一个距离D,选取3个建筑物作为埋伏点,找出所有可能的建筑物组合,使得每组中的建筑物之间的最大距离不超过D。最后,输出不同埋伏方案的数量并对99997867取模。 识…

原题描述: 

题目精炼

   给定N个建筑物的位置和一个距离D,选取3个建筑物作为埋伏点,找出所有可能的建筑物组合,使得每组中的建筑物之间的最大距离不超过D。最后,输出不同埋伏方案的数量并对99997867取模。

识别问题

   由于此题的建筑物是一个单调递增的数组(单调性),并且使用“同向双指针”来维护一段区间,保证(判断条件):

        1)right - left +1 >= 3
        2)buildings[right] - buildings[left] <= D
        3)right < buildings.length 或者 left < buildings.lengrh - 2

   因此,我们可以使用“滑动窗口”来求解。

滑动窗口解题思路:

1)左右指针初始化

int left = 0;
int right = 2;

2)满足条件进窗口

注意,要先判断right是否小于数组长度,否则会越界

while(right < buildings.length && buildings[right] - buildings[left] <= D){right++;
}

3)更新结果

此处涉及到求解组合数量问题,为了防止一段区间内,子集重复的问题,每次以buildings[left]为基准,在剩余的buildings中选取两个进行组合,公式为

C(n, 2) = \binom{n}{2} = \frac{n!}{2!(n-2)!} = \frac{n(n-1)}{2}

但是,此处涉及到两个很大的整数相乘,会出现溢出的问题,因此我们可以使用更大的整数类型,将n*(n-1)转换为long类型,并对每次累加后的结果%99997867 防止溢出。

int n = right - left - 1;
long p =((long)n *(n-1))>>1;
count =(count + p)%99997867;

当因为right>=buildings.length而跳出循环时,说明此时没有更大的值了,收集完结果后要对right--,使得right始终停留在最右边界,从而可以继续判断,等待left缩小窗口

if(right >= buildings.length){right--;
}

4)出窗口

left++;

其中,进窗口,更新结果,出窗口是一个不断循环的过程,因此,最终代码为:

import java.util.Scanner;
public class ByteDance_BuildingCombinations {public static void main(String[] args) {Scanner in = new Scanner(System.in);int N = in.nextInt();int D = in.nextInt();int[] buildings = new int[N];for (int i = 0; i < N; i++) {buildings[i] = in.nextInt();}long count = slide(buildings,D);System.out.println(count);}public static long slide(int[] buildings, int D){long count = 0;int left = 0;int right = 2;while(left < buildings.length - 2){while(right < buildings.length && buildings[right] - buildings[left] <= D){right++;}int n = right - left - 1;long p =((long)n *(n-1))>>1;count =(count + p)%99997867;if(right >= buildings.length){right--;}left++;}return count;}
}

http://www.dtcms.com/a/555239.html

相关文章:

  • 怎么免费创建个人网站长治市住房保障和城乡建设管理局网站
  • 北京盛赛车网站开发黄骅市做网站价格
  • 外国人爱做视频网站防水网站建设
  • 查看域名之前做的网站岳阳平台网站制作
  • 网站建设的流程住宅设计网站推荐
  • 阿里通义千问之文本生成图像
  • 申请的网站怎么建设有经验的常州网站建设
  • 温州网站网络公司WordPress书籍插件
  • cse复习 文件共享 nfs服务
  • 广州企业自助建站哈尔滨网页制作要多少钱
  • 360网站推广官网硅钙钾镁肥做性视频网站有哪些
  • 一起做单网站怎么样最流行网站开发工具
  • Sora 2:从视频生成到世界模拟,OpenAI的“终极游戏”
  • 网站建设开发ppt模板今天无法登陆建设银行网站呢
  • Redis哨兵与集群模式
  • 慈溪市建设局网站西安市建设工程信息网诚信信息平台官网
  • 网站后台上传图片步骤网络营销的50种方法
  • 电子商务网站建设实训步骤wordpress双击返回顶部
  • 网站地图用什么格式ps国外教程网站
  • 在线网站seo诊断自动化东莞网站建设
  • 解决Nacos发布配置失败问题
  • 编写Netfilter模块过滤ARP数据包
  • 呼吸能量饮食饮水代谢检测系统 多通道小动物代谢监控系统 小动物代谢检测系统
  • 图片网站怎么建设网站开发需求问卷
  • 前端很难学吗seo服务方案
  • 优化网站软文东莞石龙网站建设
  • 二手设备回收做哪个网站好h5游戏是什么意思
  • 顺德做网站设计的公司丹灶网站制作
  • 网站建设的7种流程图公司网站页脚
  • 网站设计论文题目网站备案手机号码