牛客春招刷题训练营 - 2025.5.15 题解

活动地址:牛客春招刷题训练营 - 编程打卡活动

Easy 小红的多彩糖葫芦

简要题意

给一个字符串,问第一对相邻相同字母的出现位置。

Solution

直接模拟即可。

Code

void R()
{
	string s;
	cin>>s;
	int n=s.size(),ans=0;
	char lst=' ';
	for (int i=0;i<n;i++)
		if (s[i]==lst) break;
		else ans++,lst=s[i];
	cout<<ans;
	return;
}

Medium 小红的好数

简要题意

考虑所有 内的整数,补前导 对齐至 位数,若 个数位互不相同则称这个数是好数。

求第 大的好数。

Solution

值域很小,不妨直接枚举 个数位的数判断。

Code

void R()
{
	int k;
	cin>>k;
	for (int a=9;a>=0;a--)
		for (int b=9;b>=0;b--)
			for (int c=9;c>=0;c--)
				for (int d=9;d>=0;d--)
					for (int e=9;e>=0;e--)
					{
						map<int,int> cnt;
						cnt[a]++;
						cnt[b]++;
						cnt[c]++;
						cnt[d]++;
						cnt[e]++;
						if (max({cnt[a],cnt[b],cnt[c],cnt[d],cnt[e]})==1)
						{
							k--;
							if (k==0)
							{
								cout<<a<<b<<c<<d<<e;
								return;
							}
						}
					}
	return;
}

Hard 滑雪

简要题意

给一个 的矩阵,求其中的最长严格单调路径。

Solution

为以 结尾的最长严格单调路径长度。

个位置按照其上的数排序,按顺序枚举位置,从其上下左右的格子向自身转移,全局 就是答案。

Code

void R()
{
	int n,m,ans=0;
	cin>>n>>m;
	vector<tuple<int,int,int>> v;
	vector<vector<int>> a(n,vector<int>(m)),dp(a);
	for (int i=0;i<n;i++)
		for (int j=0;j<m;j++)
		{
			cin>>a[i][j];
			v.emplace_back(a[i][j],i,j);
		}
	sort(v.begin(),v.end());
	reverse(v.begin(),v.end());
	for (auto [x,i,j]:v)
	{
		dp[i][j]=1;
		if (i&&a[i][j]<a[i-1][j])
			dp[i][j]=max(dp[i][j],dp[i-1][j]+1);
		if (j&&a[i][j]<a[i][j-1])
			dp[i][j]=max(dp[i][j],dp[i][j-1]+1);
		if (i+1<n&&a[i][j]<a[i+1][j])
			dp[i][j]=max(dp[i][j],dp[i+1][j]+1);
		if (j+1<m&&a[i][j]<a[i][j+1])
			dp[i][j]=max(dp[i][j],dp[i][j+1]+1);
		ans=max(ans,dp[i][j]);
	}
	cout<<ans;
	return;
}
#牛客春招刷题训练营#
全部评论

相关推荐

Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务