首页 > 其他分享 >2023.8.19JD笔试题目

2023.8.19JD笔试题目

时间:2023-08-19 15:35:49浏览次数:40  
标签:dist fmt 笔试 pos nx Println 2023.8 19JD append

第二题

题目大意是给一个长度20的01字符串,1表示得了该种病0未得。给出m种药每种药喝完可以治疗一些症状也可以诱发一些新症状,由两个长度为20的01字符串表示。然后给出用药顺序,求用完所有药后还有多少种症状。
分析:*
每次吃药等同于位运算,额外获得的新症状用a|b求,治疗的症状用a&(^b)求得。最后对得到的二进制数求1的个数

第三题

给出mn的棋盘,棋盘中表示障碍无法前进。每步可以从(x,y)移动到(x+k,y)或者(x,y+k)或者(x+k,y+k)位置,其中k是任意整数。求从左上角走到右下角最少的步数,若不能走到输出-1。
分析:
单纯BFS可能会超时,需要进行优化。枚举下一个位置时,如果出现dist[nx][ny]<dist[x][y]+1的情况,我们就提前结束搜寻下一个节点的遍历。

//核心代码,已省略IO操作

	n, m := 100000, 10000 //注意坐标从1,1开始的
	chess := [][]byte{} //用来表示棋盘
	q := []pos{{1, 1}}
	dist := make([][]int, n)
	for i := 0; i <= n; i++ {
		dist[i] = make([]int, m)
		for j := 0; j <= m; j++ {
			dist[i][j] = math.MaxInt
		}
	}
	for len(q) > 0 {
		x := q[0].x
		y := q[0].y
		q = q[1:]
		if x == n && y == m {
			fmt.Println(dist[x][y])
		}

		for i := y + 1; i <= m; i++ {
			if chess[x][i] == '*' || dist[x][i] < dist[x][y]+1 {
				break
			}
			if dist[x][i] > dist[x][y]+1 {
				dist[x][i] = dist[x][y] + 1
				q = append(q, pos{x, i})
			}
		}

		for i := x + 1; i <= n; i++ {
			if chess[i][y] == '*' || dist[i][y] < dist[x][y]+1 {
				break
			}
			if dist[i][y] > dist[x][y]+1 {
				dist[i][y] = dist[x][y] + 1
				q = append(q, pos{i, y})
			}
		}

		for i := 1; x+i <= m && y+i <= n; i++ {
			nx, ny := x+i, y+i
			if chess[nx][ny] == '*' || dist[nx][ny] < dist[x][y]+1 {
				break
			}
			if dist[nx][ny] > dist[x][y]+1 {
				dist[nx][ny] = dist[x][y] + 1
				q = append(q, pos{nx, ny})
			}
		}
	}
	if dist[n][m] == math.MaxInt {
		fmt.Println("-1")
	} else {
		fmt.Println(dist[n][m])
	}

标签:dist,fmt,笔试,pos,nx,Println,2023.8,19JD,append
From: https://www.cnblogs.com/mayifei/p/17642401.html

相关文章

  • KubeSphere 社区双周报 | Java functions framework 支持 SkyWalking | 2023.8.4-8.17
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2023.08.04-2023.08.17。贡献者名单新晋KubeSphereCon......
  • 23.8.13米哈游秋招笔试题记录
    第一题签到题easy第二题//给出一颗有根树,树上有n个节点和n-1条边,边的距离为1.根节点编号为1.//根据上述构建出这棵有根树。//然后,进行任意次操作://操作内容:对于树的叶子节点添加一个叶子节点,新添加边长度也是1.//问经过操作以后,使得这棵树中所有节点与根节点的距离不......
  • 2023.8.14-2023.8.20暑假第六周博客
    2023.8.14单独看一下外部表外部表从概念是被认为并非hive拥有的表,只是临时关联数据去使用,创建外部表也很简单,基于外币表的特性,外部表和数据的相互独立的可以先有表,然后把数据移动到指定的路径下也可以是现有数据,然后创建表通过location(路径)指向数据内部表和外部表可以相互转......
  • 2023.8.18A组模拟赛总结
    T1幂矩阵这题十分巧合。题目大意是有这样一个矩阵求该矩阵的逆矩阵中每项元素的平方和,手模几个点,会发现以下结论\[(P_n)^{-1}(i,j)=\begin{cases}i^m\binomij\quadi\geqj\\0\quadi<j\end{cases}\]不难发现我们的答案即是\[\sum_{i=1}^ni^{2m}\sum_{j=1}^i\bin......
  • 「Log」2023.8.17 小记
    序幕早上到校先摆,然后开调代码。大分块对拍调调调。学长开始讲平衡树。平衡树平衡树平衡树!学完了,点午饭吃午饭。学主席树。主席树主席树主席树!学完了点晚饭吃完饭。用chatGPT写了点文章,乐坏了。继续卡常。\(\color{black}{P4119\[Ynoi2018]\未来日记}\)详见「「No......
  • 2023.8.17 - env运行时变量在node中运行问题
    在Vue.js中,你不能直接在模板文件中访问.env文件中定义的环境变量。.env文件中的变量是在构建过程中被注入到应用程序中的,而不是在运行时可访问的。然而,你可以使用Vue提供的process.env来访问在构建过程中注入的环境变量。在Vue组件的JavaScript代码中,你可以通过process.env.VARIA......
  • 2023.8.17
    //1.约束//2.用inteface定义,不可实例化,没有构造方法//3.用implements可实现多个接口//接口publicinterfaceService{//用interface定义接口//在接口中定义的属性,都是常量publicstaticfinalintAGE=99;publicstaticfinalintheight=180;......
  • 某公司笔试题 - 删除字符串中出现次数最少的字符(附python代码)
    #实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输入删除这些单词后的字符串,字符串中其它字符保持原来的顺序。#数据范围:输入的字符串长度满足1<=n<=20,保证输入的字符串中仅出现小写字母str1=input().lower()dic={}if1<......
  • 2023.8.16
    今天早上睡到中午了,舒服,一想到回学校就十分的激动,中午打开瓦罗兰特学习到晚上,累了,回想这个假期真是差强人意啊,希望下个假期能好过一些,不过学校生活更好一些,能和室友一起就不无聊啦,在学校规律地生活,才是对我的最好礼物,明天就回去了。......
  • 2023.8.16模拟赛总结
    T1Idiot的乘幂题目大意就是给\(a,b,c,d,p\)满足求解这题考场一开始发现\(\gcd(a,c)=1\)没啥用,后来发现其实很巧妙,直接辗转相除\(a,c\)同时维护\(\chi^a,\chi^c\)最后剩下来的就是\(\chi\)当然题解给了一个鬼才想到的做法构造\(\chi=\chi^1=\chi^{ax+cy}\)所以可以用exgc......