![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 56
清贫码农
这个作者很懒,什么都没留下…
展开
-
小红的白日梦
已知小红白天做梦可以获得 2 点幸福度,晚上做梦可以获得 1 点幸福度。她可以每天将晚上的梦提前移到白天来做,请问小红总共最多可以获得多少幸福度?第二行输入一个长度为n的、仅由'Y'和'N'组成字符串,代表每天中午的做梦情况。第二行输入一个长度为n的、仅由'Y'和'N'组成字符串,代表每天晚上的做梦情况。第三天小红将晚上的梦提前到白天来做,获得了 2 幸福度。第一天小红中午做梦了,晚上没做梦,获得了 2 幸福度。第二天小红白天和晚上都做梦了,获得了 3 幸福度。'Y'代表做梦了,'N'代表没做梦。原创 2024-01-24 16:01:28 · 482 阅读 · 0 评论 -
牛客竞赛:小红大战小紫
来源:牛客网。原创 2024-01-24 15:58:21 · 380 阅读 · 0 评论 -
生成函数
来源:牛客网。原创 2024-01-24 15:54:32 · 368 阅读 · 0 评论 -
TH11 权值最大的路径
给出一个有向无环图,规定路径是单向且小序号指向大序号,每个节点都有权值。在图上求一条路径使得经过的节点权值和最大,输出路径。很明显 先去第三点权值为20,再去第四个点权值为5,再去第五个点权值为4,再去第六个点权值为5。该方法返回一个字符串,表示经过的节点权值和最大的路径。,分别表示从当前节点开始的最大权值和和前一个节点的索引。中的每个节点,计算从该节点开始的最大权值和。的整数,表示节点的数量。的整数数组,表示每个节点的权值;中找到最大权值和的路径,并将其添加到。在这个实现中,我们定义了一个名为。原创 2024-01-04 09:26:30 · 458 阅读 · 0 评论 -
TH10 两棵树的问题
有两棵大小为n且以1为根的树,设为树1和树2,令根的深度为0,在树1上编号为x的点,在树2中编号为a[x]。定义点对(x,y)的价值为树1中x和y的最近公共祖先的深度+树2中a[x]和a[y]的最近公共祖先的深度。b数组下标从0到n,为描述树1的数组,b[x]表示树1上x的父亲节点的编号,其中b[0]=b[1]=0.c数组下标从0到n,为描述树2的数组,c[x]表示树2上x的父亲节点的编号,其中c[0]=c[1]=0.方法计算树1和树2中每个节点的最近公共祖先,并将结果存储在。,表示树1中每个节点的值;原创 2024-01-04 09:24:00 · 347 阅读 · 0 评论 -
TH5 牛牛的棋盘
我们可以把1个点放在左上角,第一个点放在右下角;也可以把一个点放在右上角,一个点放在左下角。矩阵第一行,第一列,最后一行,最后一列都有点。就1个点,所以无法满足条件。输出方案数对1e9+7的模数。原创 2024-01-03 10:02:45 · 354 阅读 · 0 评论 -
TH4 牛牛的Fib序列
牛牛重新定义了斐波那契数列,牛牛定义f(n) = f(n-1)+f(n+1);f(1)=a, f(2)=b, 现在给定初始值 a, b,现在求第n项f(n)%1000000007的值。最终的答案应是一个非负整数,如-1 % 1000000007 = 1000000006。f(2)=f(3)+f(1), 所以f(3) = f(2)-f(1)=2-1=1。同样例1:f(3)=-1%1000000007=1000000006。其中 1原创 2024-01-03 10:01:04 · 430 阅读 · 0 评论 -
华为机试:HJ82 将真分数分解为埃及分数
分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。注意:由于题目要求输出以字典序排序的埃及分数,因此可以在egyptianFraction()函数中对分数进行排序。注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!第二个样例直接输出1/2也是可以的。输入一个真分数,String型。如有多个解,请输出任意一个。输出分解后的string。原创 2024-01-02 14:37:17 · 817 阅读 · 0 评论 -
华为机试:HJ77 火车进站
给定一个正整数N代表火车数量,0原创 2024-01-02 14:35:32 · 433 阅读 · 0 评论 -
华为机试:HJ50 四则运算
变量来遍历表达式中的字符。在遍历过程中,程序会根据字符的类型来执行相应的操作,例如将数字压入操作数栈、将操作符压入操作符栈、计算表达式的值等。在遍历过程中,程序会根据字符的类型来执行相应的操作,例如将数字压入操作数栈、将操作符压入操作符栈、计算表达式的值等。保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。函数中,我们使用了两个栈来存储操作数和操作符,并使用一个。输入一个表达式(用字符串表示),求这个表达式的值。原创 2023-12-28 10:26:48 · 359 阅读 · 0 评论 -
华为机试:HJ48 从单向链表中删除指定值的节点
指针来遍历链表,并在找到要删除的节点时将其从链表中删除。如果头节点是要删除的节点,则直接返回头节点的下一个节点。如果要删除的节点不存在,则返回原始链表。输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。这个程序首先从输入中读取链表的长度、头节点的值和各个节点的值,然后使用。删掉节点3,返回的就是2->5->4->1。链表为2->7->3->1->5->4。形成的链表为2->5->3->4->1。链表为2->3->1->5->4。链表为2->3->1->5。原创 2023-12-28 10:24:45 · 472 阅读 · 0 评论 -
华为机试:HJ45 名字的漂亮度
对于样例lisi,让i的漂亮度为26,l的漂亮度为25,s的漂亮度为24,lisi的漂亮度为25+26+24+26=101.每个字母都有一个“漂亮度”,范围在1到26之间。数组来存储每个字母的漂亮度,并遍历输入字符串中的每个字符。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。这个程序首先从输入中读取字符串的数量,然后逐个读取字符串并调用。给出多个字符串,计算每个字符串最大可能的“漂亮度”。函数来计算每个字符串的最大可能漂亮度。数组来存储每个字母的漂亮度。原创 2023-12-28 10:22:21 · 308 阅读 · 0 评论 -
华为机试:HJ43 迷宫问题
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。输入两个整数,分别表示二维数组的行数,列数。再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据范围: 2≤n,m≤10 , 输入的内容只包含 0≤val≤1。函数使用深度优先搜索算法来遍历迷宫,并将找到的路径添加到。数组来表示可以移动的方向,这里只有两个方向:向右和向下。这个程序首先从输入中读取迷宫的大小和内容,然后调用。左上角到右下角的最短路径,格式如样例所示。原创 2023-12-28 10:20:42 · 456 阅读 · 0 评论 -
华为机试:HJ24 合唱队
TK ,若存在i(1≤i≤K) 使得T1原创 2023-12-27 10:26:42 · 422 阅读 · 0 评论 -
华为机试:HJ20 密码验证合格程序
的静态方法,该方法接受一个字符串作为输入,并返回一个布尔值,表示该字符串是否满足密码要求。方法检查每个字符串是否满足要求。如果满足要求,则输出"OK",否则输出"NG"。3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)2.包括大小写字母.数字.其它符号,以上四种至少三种。数据范围:输入的字符串长度满足 1≤n≤100。这个程序可以处理给定的示例输入,并产生正确的输出。如果符合要求输出:OK,否则输出NG。方法中遍历输入字符串数组,并调用。这个程序首先定义了一个名为。原创 2023-12-27 10:05:26 · 489 阅读 · 0 评论 -
华为机试:HJ16 购物单
满意度是指所购买的每件物品的价格与重要度的乘积的总和,假设设第�i件物品的价格为v[i],重要度为w[i],共选中了k件物品,编号依次为j1,j2,...,jk,则满意度为:v[j1]∗w[j1]+v[j2]∗w[j2]+…如果选择购买,我们需要判断该物品是否为附件,如果是附件,则需要先购买其所属的主件。我们定义一个二维数组dp[i][j],其中i表示当前购买的物品编号,j表示当前的预算。如果 q=0 ,表示该物品为主件,如果 q>0 ,表示该物品为附件, q 是所属主件的编号)原创 2023-12-27 09:57:57 · 862 阅读 · 0 评论 -
NC3 链表中环的入口结点
此时,我们再使用一个指针 ptr 从相遇点开始遍历,每次移动一个结点,直到该指针再次与慢指针相遇。此时,该指针所指向的结点就是链表的环的入口结点。当快指针和慢指针相遇时,我们可以再使用一个指针从相遇点开始遍历,每次移动一个结点,直到该指针再次与慢指针相遇。环的部分只有一个结点,所以返回该环形链表入口结点,后台程序打印该结点对应的结点值,即2。给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。返回环形链表入口结点,我们后台程序会打印该环形链表入口结点对应的结点值,即3。原创 2023-12-22 09:24:17 · 140 阅读 · 0 评论 -
NC2 重排链表
接着,我们遍历链表,将 curr 指针指向的节点的 next 指针指向 prev 指针,然后将 prev 指针指向 curr 指针,将 curr 指针指向下一个节点。我们首先将 dummy 节点的 next 指针指向 l1 节点,然后将 l1 节点的 next 指针指向 l2 节点,接着将 l2 节点的 next 指针指向 l1 节点,最后将 l1 节点的 next 指针指向 l2 节点。给定head链表1->2->3->4->5, 重新排列为 1->5>2->4->3,会取head链表里面的值打印输出。原创 2023-12-22 09:20:56 · 36 阅读 · 0 评论 -
NC1 大数加法
接下来,我们使用 while 循环来依次计算两个数字的每一位相加的结果,并将结果保存到 StringBuilder 对象中。最后,我们将 StringBuilder 对象反转,得到正确的结果字符串。我们可以从最低位开始,依次将两个数字的对应位相加,并将结果保存到一个新的字符串中。最后,我们需要将结果字符串反转,以得到正确的结果。在 main 方法中,我们首先定义两个字符串 s 和 t,分别表示输入的两个数字。以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。要求:时间复杂度 O(n)原创 2023-12-22 09:17:48 · 99 阅读 · 0 评论 -
CMB1 序列找数
在 main 方法中,我们首先定义一个长度为 n+1 的数组,其中前 n 个元素为子序列中的数字,最后一个元素为序列的最大值 n。最后,我们将两个结果异或起来,得到未出现在子序列中的那个数。因此,我们可以将从 0 到 n 的所有数异或起来,然后再将子序列中的所有数异或起来,最后得到的结果就是未出现在子序列中的那个数。从非负整数序列 0, 1, 2, ..., n中给出包含其中n个数的子序列,请找出未出现在该子序列中的那个数。其中:首个数字为非负整数序列的最大值n,后面n个数字为子序列中包含的数字。原创 2023-12-22 09:15:08 · 24 阅读 · 0 评论 -
QQ4 游戏任务标记
游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。如果不在范围内,我们输出 -1 并返回 -1。否则,我们计算任务 ID 对应的 unsigned int 数组的索引和位置,并将该位置的值右移并与 1 进行按位与运算,得到任务是否已经完成的标志。在 main 方法中,我们首先调用 completeTask 方法将任务 1024 标记为已完成,然后调用 checkTask 方法检查任务 1024 是否已经完成,并将结果输出到控制台。原创 2023-12-22 09:13:35 · 22 阅读 · 0 评论