首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客WR255030
获赞
1
粉丝
1
关注
1
看过 TA
9
常熟理工学院
2025
算法工程师
IP属地:江苏
锐不可当
私信
关注
拉黑
举报
举报
确定要拉黑牛客WR255030吗?
发布(9)
评论
刷题
收藏
牛客WR255030
关注TA,不错过内容更新
关注
02-14 08:53
常熟理工学院 算法工程师
题解 | #A题 小L的三角尺#
本题就是要用最优的w分配,使得每一次减小y时,是最大效率,这样才能使得最终斜边和最短。为了知道最大的减小效率,其实就是每一个y[i]/x[i]的值。我们可以用优先队列加上pair函数的方式存储y[i]/x[i]和每一个i,之所以要存i,是为了以后方便提取每一个y[i]的精确值。 代码核心是这样的: using Real=long double; void R() { int n,w; cin>>n>>w; vecto...
0
点赞
评论
收藏
分享
02-13 09:37
常熟理工学院 算法工程师
题解 | #F题 智乃是算法竞赛群友#
本题就是要构造出在限定的长度n内,使得qcjjkkt和td以及qcjjkktd三种组合起来让快乐值最大化。我们可以直接用dp的方式。qcjjkkt的长度是7,td的长度是2,qcjjkktd的长度是8,n的长度要么是2、7、8三个数的最小公倍数56的倍数,要么就是余下1~~55,所以就以112为dp范围,dp[i]就是等于max=({dp[i-2]+b,dp[i-7]+a,dp[i-8]+a+b}).
0
点赞
评论
收藏
分享
02-10 09:08
常熟理工学院 算法工程师
题解 | #F题-爱音的01串构造#
本题就是让所写的01串中所有的子序列的mex和最大。令0的数量a,1的数量是b,其实有三种情况:0的数量和1相等,0的数量大于1,0的数量小于1.当0的数量小于1时,就是要设法将零填补在1中间,达到一的连续串尽量短,最终达到将一分成(a+1)份。当1数量小于0时,同理将1填在0中,最终将0分成(b+1)份。如果是a==b,直接交替输出01就可以了。这就是答案了。
0
点赞
评论
收藏
分享
02-08 17:20
常熟理工学院 算法工程师
题解 | #C题Inverted World #
该题就是让最后的序列变成010101....或是像1010101.....这样。所以分俩种情况讨论。如果按第一种0101010....,把所有位置错误放置的拿出来变成一个序列,设两个变量count1和count2,分别计数以零为结尾和以一为结尾的该序列的子序列个数。就是从前往后遍历每一个拿出来的序列的每个数,是1时,要看count0是不是大于0,如果是0则要另外开一个序列存放1,count1++,反之则count0--,count1++。以此方式推到其他情况就可知答案。
0
点赞
评论
收藏
分享
02-08 09:14
常熟理工学院 算法工程师
题解 | #F题 Energy Synergy Matrix#
本题中,小小红需要从第一列走到第n列,那么横向一定是走(n-1)步,要使小小红走的最少路径,那么纵向必须最小路程。小红希望最终最短步数尽量小,小紫希望最终最短步数尽量大。又有“强制换行结构”,他至少需要五列。每五列至少逼出一次换行。小红和小霞结束的标志是:最终只有一条简单路径从(1,1)到第n列。那么答案是(n-1)+n/5.
0
点赞
评论
收藏
分享
02-06 17:11
常熟理工学院 算法工程师
题解 | #H 权值计算#
本题要求算所有子串的权值和。我们发现:所谓的权值是由子串中数字种类多少决定的。我们可以将一种数字对所在子串的权值影响称为“贡献”。一种数字如果在一个子串出现多次,只有第一次出现的有贡献。子串中的数字对子串贡献只有对从其往后有贡献,其实就是一个等差数列求和。我们可以总结:只要一一算出每个数的贡献就可以得出答案。这里最重要的是要标记一个数在其前面出现的位置。我们可以从前往后遍历,用一个数组遍历每个数在前面出现的位置,最后每个数的总贡献==(该数字的位置-前一次出现次数的位置+1)(总个数-此位置+1+1)(总个数-此位置+1)/2。
0
点赞
评论
收藏
分享
02-06 09:38
常熟理工学院 算法工程师
题解 | #x?y?n!#
本题是要求出x与y满足所给的gcd(x,y)==n并且x^y要最小。我们从样题发现x^y=gcd(x,y)=n,有异或运算公式x^y=n推导出x^n=y。易知x、y是n的倍数,令y=x+n,又有公式x+n=x^n+2*(x&n),那么只有在(x&n)为0时才成立。n是在int范围里面的,所以可以令x=n<<32,y=(n<<32)+n即可。
0
点赞
评论
收藏
分享
02-04 16:18
常熟理工学院 算法工程师
题解 | #Digital Folding#
本题意思是:给定左右区间L、R,找出L<=x<=R的x的逆序最大值。有多种情况需要讨论。 1、L和R是相同位数时,例如124368和124897两个数,我发现,我们只要找到两个数从左往右开始不同时的数,将其变成小于R的这位数减一,也就是所举例中的124897中的8变成7,然后后面都变成9,最后这个数就是124799,reverse一下变成997421,再将其与R的逆序比较大小,也就是和所举例中的789421,最终得到答案。再次举例,如L是10,R是20,从第一位就不同,那就把R的第一位2变成1,后面的0变成9,也就是19的倒序91,将91和20的倒序比较大小。 2、L和R是不同的位...
0
点赞
评论
收藏
分享
02-04 14:59
常熟理工学院 算法工程师
题解 | #Card Game#
小红的牌是固定的序列,小苯的牌可排序。现在的问题是怎么样才可以算出小苯赢最多的种类。有题目意思可知:比较是如果是小牌则保留,如果是大牌则会删除。我仔细思考了一会儿,发现比小红最小值小或是等于的都不可以赢,比小红最小值大的都可以赢。那么我们可以用sort降序排序小苯的,然后找出比最小值大的和比最小值小的或是等于的。 代码在此处: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 998244353; int main(){ int T; cin>>T; i...
0
点赞
评论
收藏
分享
1
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务