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

2023-2-11 刷题情况

最短路计数

题目描述

给出一个 NNN 个顶点 MMM 条边的无向无权图,顶点编号为 1∼N1\sim N1N。问从顶点 111 开始,到其他每个点的最短路有几条。

输入格式

第一行包含 222 个正整数 N,MN,MN,M,为图的顶点数与边数。

接下来 MMM 行,每行 222 个正整数 x,yx,yx,y,表示有一条由顶点 xxx 连向顶点 yyy 的边,请注意可能有自环与重边。

输出格式

NNN 行,每行一个非负整数,第 iii 行输出从顶点 111 到顶点 iii 有多少条不同的最短路,由于答案有可能会很大,你只需要输出 $ ans \bmod 100003$ 后的结果即可。如果无法到达顶点 iii 则输出 000

样例

样例输入

5 7
1 2
1 3
2 4
3 4
2 3
4 5
4 5

样例输出

1
1
1
2
4

提示

111555 的最短路有 444 条,分别为 2221→2→4→51\to 2\to 4\to 512452221→3→4→51\to 3\to 4\to 51345(由于 4→54\to 545 的边有 222 条)。

  • 对于 20%20\%20% 的数据,1≤N≤1001\le N \le 1001N100
  • 对于 60%60\%60% 的数据,1≤N≤1031\le N \le 10^31N103
  • 对于 100%100\%100% 的数据,1≤N≤1061\le N\le10^61N1061≤M≤2×1061\le M\le 2\times 10^61M2×106

思路

无向无权图。可使用bfs遍历,因为路径的权重都为1。
当前图中存在自环,但自环并不影响bfs遍历的最短路。
然后就是重边会对结果造成影响,需要我们考虑。

代码实现

import java.util.*;public class Main{static int MOD = (int)1e5 + 3;public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt(), len = sc.nextInt();List<Integer> list[] = new ArrayList[n+1];// 去环,已经进入过队列的结点,将不再进入队列boolean[] vis = new boolean[n+1];int[] depth = new int[n+1];// 结果。int[] ans = new int[n+1];for(int i = 1; i <= n; i++) list[i] = new ArrayList<>();int x, y;for (int i = 0; i < len; i++) {x = sc.nextInt();y = sc.nextInt();list[x].add(y);list[y].add(x);}Queue<Integer> queue = new ArrayDeque<>();depth[1] = 0;vis[1] = true;ans[1] = 1;queue.offer(1);while(!queue.isEmpty()){int cur = queue.poll();for(int next : list[cur]){if(!vis[next]){vis[next] = true;depth[next] = depth[cur] + 1;queue.offer(next);}// next结点,只有深度为 depth[next]的时候才会更新。// 换句话说就是只有第一次与第一次相同时间到达next时,才会更新值。if(depth[next] == depth[cur] + 1) ans[next] = (ans[next] + ans[cur]) % MOD;}}for(int i = 1; i <= n; i++) System.out.println(ans[i]);sc.close();}
}

中位数

题目描述

给出 1,2,...,n1,2,...,n1,2,...,n 的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是 bbb。中位数是指把所有元素从小到大排列后,位于中间的数。

输入格式

第一行为两个正整数 nnnbbb,第二行为 1,2,...,n1,2,...,n1,2,...,n 的排列。

输出格式

输出一个整数,即中位数为 bbb 的连续子序列个数。

样例

样例输入

7 4
5 7 2 4 3 1 6

样例输出

4

提示

数据规模与约定

  • 对于 30%30\%30% 的数据中,满足 n≤100n \le 100n100

  • 对于 60%60\%60% 的数据中,满足 n≤1000n \le 1000n1000

  • 对于 100%100\%100% 的数据中,满足 n≤100000,1≤b≤nn \le 100000,1 \le b \le nn100000,1bn

思路

因为满足需要的区间一定包含b, 所以我们可以先把b在数组中的位置找到。再到基础上拓展区间。
需要b成为区间的中位数,即是需要区间内大于b的数的数量等于区间内小于b的数的数量,我们可以把大于b的数记作1, 小于b的数记为-1。然后只需要左边区间加+右边区间 = 0即为找到一个区间。(还需要特别注意区间长度为奇数也是条件之一)

代码实现

import java.util.*;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt(), b = sc.nextInt();int[] arr = new int[n+1];for(int i = 1; i <= n; i++) arr[i] = sc.nextInt();int index = query(arr, b);HashMap<Integer, Integer> one = new HashMap<>();HashMap<Integer, Integer> two = new HashMap<>();two.put(0, 1);int val = 0;for(int i = index - 1; i > 0; i--){val += (arr[i] > b ? 1 : -1);if((index - i) % 2 == 1) one.put(val, one.getOrDefault(val, 0) + 1);else two.put(val, two.getOrDefault(val, 0) + 1);}val = 0;long ans = 0;for(int i = index; i <= n; i++){val += (arr[i] == b ? 0 : (arr[i] > b ? 1 : -1));if((i-index) % 2 == 1) ans += one.getOrDefault(-val, 0);else ans += two.getOrDefault(-val, 0);}System.out.println(ans);sc.close();}static int query(int[] arr, int b){for(int i = 1; i < arr.length; i++){if(arr[i] == b) return i; }return -1;}
}

相关文章:

2023-2-11 刷题情况

最短路计数 题目描述 给出一个 NNN 个顶点 MMM 条边的无向无权图&#xff0c;顶点编号为 1∼N1\sim N1∼N。问从顶点 111 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 222 个正整数 N,MN,MN,M&#xff0c;为图的顶点数与边数。 接下来 MMM 行&…...

2019_41 考研408

2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存&#xff0c;链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法&#xff0c;重新排列L中的各结点&#xff0c;得到线性表L(q,a,,a,an…...

Linux账号与用户组

目录 用户标识符&#xff1a;UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数&#xff08;与第三字…...

有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加&#xff0c;太空已经成为国家赖以生存与发展的命脉之一&#xff0c;凝聚着巨大的国家利益&#xff0c;太空安全的重要性日益凸显[1]。而在信息化时代&#xff0c;太空安…...

JAVA集合专题3 —— vector + LinkedList + Set

目录vector的特点LinkedList底层结构模拟双向链表比较ArrayList和LinkedListSet接口基本介绍Set接口的遍历方式Set接口实现类对象的特点Set接口实现类HashSet模拟HashSet/HashMap的底层结构vector的特点 Vector底层是一个对象数组Vector是线程同步的&#xff0c;即线程安全的&…...

Scout:一款功能强大的轻量级URL模糊测试与爬取工具

关于Scout Scout是一款功能强大的轻量级URL模糊测试与爬取工具&#xff0c;可以帮助广大研究人员进行URL模糊测试&#xff0c;并爬取目标Web服务器中难以扫描发现的VHSOT、文件和目录等资源。 项目中包含了一个完整的字典文件&#xff0c;并尽可能地提供了更多的便携性&#…...

leaflet 解决marker呈现灰色边框的问题

第052个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet示例中处理marker外面有灰色边框的问题,请看未处理会后的图片。 处理后的结果非常满意,不再显示灰色边框。处理方法参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意…...

MySQL JSON类型字段的查找与更新

MySQL 提供了丰富的函数用于 JSON 类型字段的查找与更新&#xff0c;详见官方文档。 创建一个表 t1&#xff0c;basic_info 字段为JSON类型: CREATE TABLE t1 (id int(11) NOT NULL AUTO_INCREMENT,basic_info json DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CH…...

element Ui树状图控件 spring boot Vue 实现角色授权功能

目录 前言&#xff1a; 二. element ui 2.1官网提供的核心代码 三.表结构 ​编辑 四.后端 4.1功能分析 4.2实体类 4.3 查询全部权限显示的结果 4.2修改角色权限的后台方法 五.vue 5.0代码总览 5.1树形图 5.2所需要的绑定数据 5.3所需方法 前言&#xff1a; 先上图…...

已解决sc delete MongoDB卸载MongoDB拒绝访问。

已解决sc delete MongoDB卸载MongoDB拒绝访问。 文章目录报错问题报错翻译报错原因解决方法联系博主免费帮忙解决报错报错问题 粉丝群里面的一个小伙伴遇到问题跑来私信我&#xff0c;想卸载MongoDB数据库&#xff0c;但是发生了报错&#xff08;当时他心里瞬间凉了一大截&…...

python的opencv操作记录11——阈值分割

文章目录传统图像处理分割阈值分割一个应用场景opencv库中的阈值分割固定阈值THRESH_OTSU 大津法阈值自适应阈值传统图像处理分割 现在提到图像分割&#xff0c;很多人会直接想到当前火爆的深度学习的各种分割网络&#xff0c;比如实例分割&#xff0c;语义分割等。其实在传统…...

Python-项目实战--飞机大战-英雄登场(7)

目标设计英雄和子弹类使用pygame.key.get_pressed()移动英雄发射子弹1.设计英雄和子弹类1.1英雄需求游戏启动后&#xff0c;英雄出现在屏幕的水平中间位置&#xff0c;距离屏幕底部120像素英雄每隔0.5秒发射一次子弹&#xff0c;每次连发三枚子弹英雄默认不会移动&#xff0c;需…...

寒假安全作业nginx-host绕过实例复现

1.测试环境搭建 LNMP架构的话&#xff0c;肯定就是linux、nginx、mysql、php四大组件。在后面的复现中我们还会用到https的一部分知识&#xff0c;故这里的nginx就需要使用虚拟主机并且配置https证书&#xff0c;且具有php解析功能。 1.1 基础nginx配置 #1.创建web目录 mkdir …...

RocketMQ-消息消费模式 顺序消费

RocketMQ-消息消费模式 顺序消费RocketMQ-消息消费模式集群模式集群模式的演示(本身就默认)Rocketmq存储队列广播模式顺序消费如何改实现顺序消费RocketMQ-消息消费模式 集群模式 在消费模式为集群的情况下,如果机器是集群的,消息只会给集群中的其中一台机器消费到 集群模…...

一、Java并发编程之线程、synchronized

黑马课程 文章目录1. Java线程1.1 创建和运行线程方法一&#xff1a;Thread方法二&#xff1a;Runnable&#xff08;推荐&#xff09;lambda精简Thread和runnable原理方法三&#xff1a;FutureTask配合Thread1.2 查看进程和线程的方法1.3 线程运行原理栈与栈帧线程上下文切换1.…...

12.hadoop系列之MapReduce分区实践

本文我们学习MapReduce默认分区以及自定义分区实践 当我们要求将统计结果按照条件输出到不同文件(分区)&#xff0c;比如按照统计结果将手机归属地不同省份输出到不同文件中(分区) 1.默认Partitioner分区 public class HashPartitioner<K, V> extends Partitioner<…...

有了独自开,一个人就是一个团队

文章目录 简单介绍优点 优秀案例平台福利总结 简单介绍 独自开是一个基于商品与服务交易全流程的PaaS开发平台。对于开发者&#xff0c;独自开可以协助开发者一个人独自开发一套系统。 优点 独自开有独创的分层标准化平台架构&#xff0c;可以满足系统的任何个性化需求。 …...

web期末复习 2023.02.11

文章目录Web 的概念Web 组成用户通过浏览器请求资源的过程:HTML 超文本标记语言CSS插入样式表的方法有三种:对象&#xff0c;类&#xff0c;实例一个完整的 JavaScript 实现是由以下 3 个不同部分组成的&#xff1a;JavaScript 用法什么是 Java Server Pages?JSP 注释JSP 的 J…...

第44章 用户密码实体及其约束规则的定义实现

1 说明&#xff1a; 由当前程序需要兼容实现多种用户密码的加密操作&#xff0c;所以必须把“CustomerPassword”定义为实体类&#xff0c;该类用于用于把加密方式、密钥及其加密后的密码持久化到“CustomerPassword”表中&#xff0c;以便用为用户登录操作提供验证支撑。 如果…...

聊聊并发与锁

持续坚持原创输出&#xff0c;点击蓝字关注我吧1.并发与并行并发可以充分地利用 CPU 资源&#xff0c;一般都会使用多线程实现。多线程的作用是提高任务的平均执行速度&#xff0c;但是会导致程序可理解性变差&#xff0c;编程难度加大。关于对并发与并行的概念&#xff0c;大家…...

开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用

目录 效果如下 目录结构 GameEntity.js GrawGame.js konva.min.js PlayGame.js veriable.js index.html 结语&#xff1a; 前期回顾 卡通形象人物2 写代码-睡觉 丝滑如德芙_0.活在风浪里的博客-CSDN博客本文实现了包含形象的卡通小人吃、睡、电脑工作的网页动画https://…...

Linux第四讲

目录 四、shell脚本 4.1 shell和shell脚本 4.2 脚本语言分类 4.2.1 编译型语言 4.2.2 解释型语言 4.2.3 脚本语言 4.3 shell常见种类 4.3.1 shell分类介绍 4.3.2 查看bash版本 4.3.3 sh和bash的关系 4.4 脚本书写规范 4.4.1 选择解释器 4.4.2 开发规范 4.5 shell…...

Redis 持久化

持久化是指数据写到物理硬盘里&#xff0c;即便程序崩溃、或者电脑重启&#xff0c;依然能够恢复。Redis提供了两种持久化机制&#xff1a;RDB和AOF。 RDB(Redis Database): RDB文件相当于内存快照&#xff0c;保存了某个时间点数据库信息。使用RDB文件恢复很简单&#xff0c;将…...

Python语言零基础入门教程(十三)

Python 字典(Dictionary) 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key:value 对用冒号 : 分割&#xff0c;每个键值对之间用逗号 , 分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key2 : …...

江苏五年制专转本应该复习几轮?

五年制专转本应该复习几轮&#xff1f; 据调查统计&#xff1a;2022年专转本17%的考生复习三轮及以上&#xff0c;23%的考生复习了两轮。这两类的考生录取率高至85%。可见复习轮数多&#xff0c;专转本上岸的概率也大。综合多方因素&#xff0c;建议同学们专转本复习四轮&#…...

微信小程序的优化方案之主包与分包的研究

什么是分包&#xff1f; 某些情况下&#xff0c;开发者需要将小程序划分成不同的子包&#xff0c;在构建时打包成不同的分包&#xff0c;用户在使用时按需进行加载。 在构建小程序分包项目时&#xff0c;构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的…...

从手工测试转型web自动化测试继而转型成专门做自动化测试的学习路线。

在开始之前先自学两个工具 商业web自动化测试工具请自学QTP&#xff1b;QTP的学习可以跳过&#xff0c;我是跳过了的。 开源web自动化测试工具请自学Selenium&#xff1b;我当年是先学watir&#xff08;耗时1周&#xff09;&#xff0c;再学selenium&#xff08;也耗时1周&…...

【计组笔记03】计算机组成原理之系统五大部件介绍、主存模型和CPU结构介绍

这篇文章,主要介绍计算机组成原理之系统五大部件、主存模型和CPU结构。 目录 一、计算机五大部件 1.1、体系结构 (1)冯诺依曼体系结构...

微信小程序解析用户加密数据

微信公众号 IT果果日记前言在上一篇文章“微信小程序如何获取用户信息”中我们完成了用户明文数据的校验工作&#xff0c;本文将学习解密用户的非明文用户信息&#xff0c;也就是获取用户的openId和unionId。解密调用wx.getUserProfile后将返回encryptedData和iv两个数据。encr…...

毕业四年换了3份软件测试工作,我为何仍焦虑?

​今天一看日历&#xff1a;2023.2.11 &#xff0c;才突然意识到自己毕业已经四年了。四年时间里一直在测试行业摸爬滚打&#xff0c;现在是时候记录一下了。 下面我来分享下我这4年软件测试经验及成长历程&#xff0c;或许能帮助你解决很多工作中的迷惑。 01、我是如何开始做…...

在阿里国际站做的网站/企业微信会话内容存档

统计学 官方一点的定义: 统计学是一门通过搜索、整理、分析数据等手段&#xff0c;以达到推断所测对象的本质&#xff0c;甚至预测对象未来的一门综合性科学 统计可以这样简单的来理解.统计就是收集各种各样的数据,然后对这些数据做一些分析,得出一些有用的结论.政府不是有个…...

什么网站可以做设计/广东深圳疫情最新消息

crmsh是Pacemarker HA Cluster的重要组成部分&#xff0c;本身也是OpenSUSE ha-cluster的一部分&#xff08;换句话说crmsh在OpenSUSE中是支持的&#xff09;。 CentOS默认没有crmsh的yum源&#xff0c;因此可以借用OpenSUSE的源&#xff08;OpenSUSE的包也是rpm&#xff09;。…...

印度人通过什么网站做国际贸易/网站数据

第七章Simulink 基础Chapter 7: Introduction to Simulink一&#xff0e;Simulink 初步(Primer of Simulink)MATLABSimulink是一个动态仿真系统&#xff0c;用于对动态系统进行仿真和分析&#xff0c;预先模拟实际系统的特性和响应&#xff0c;根据设计和使用要求&#xff0c;对…...

重庆网站建设 最便宜/网站竞价推广都有哪些

今天去青岛会展中心看车展了&#xff0c;拍了好多照片&#xff0c;把它传上来跟大家分享一下&#xff0c;也好在工作之余放松一下&#xff01; 转载于:https://blog.51cto.com/370135415/577182...

寻找网站建设推广/google高级搜索

关系型数据库 MySQL MySQL 是一个最流行的关系型数据库&#xff0c;在互联网产品中应用比较广泛。一般情况下&#xff0c;MySQL 数据库是选择的第一方案&#xff0c;基本上有 80% ~ 90% 的场景都是基于 MySQL 数据库的。因为&#xff0c;需要关系型数据库进行管理&#xff0c;此…...

github主页做网站/站内优化主要从哪些方面进行

转载自&#xff1a;https://blog.csdn.net/liub37/article/details/83310879 参考&#xff1a;https://www.cnblogs.com/wisewrong/p/8985471.html 下面开始工作&#xff1a; 插件安装 tinymce官方提供了一个vue的组件tinymce-vue 如果有注册或购买过服务的话&#xff0c;直接…...