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

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

Easy 小红吃药

简要题意

种症状 种药,每种药服用后会先治愈若干种疾病,再带来若干种疾病,现按顺序服用 次药,求每次服药后的疾病数。

Solution

把当且有的疾病 串记作 ,给定药物的治愈/带来疾病 串分别记作 ,则服药后的疾病

Code

void R()
{
	map<pair<int,int>,bool> vis;
	int X,Y,ans=-1;
	cin>>X>>Y;
	queue<tuple<int,int,int>> q;
	vis[{X,Y}]=1;
	q.push({X,Y,0});
	while (!q.empty())
	{
		auto [x,y,d]=q.front();
		q.pop();
		if (x==y)
		{
			ans=d;
			break;
		}
		if (!vis.count({y,x}))
			vis[{y,x}]=1,q.push({y,x,d+1});
		if (!vis.count({x+y,x-y})&&abs(x+y)<=1000&&abs(x-y)<=1000)
			vis[{x+y,x-y}]=1,q.push({x+y,x-y,d+1});
	}
	cout<<ans;
	return;
}

Medium 小红和小紫的取素因子游戏

简要题意

给定一个数 ,两人轮流将当前数除去自身的一个质因子,求最后一步由谁完成。

Solution

不管怎么选取质因子,每次操作后当前数的质因子个数严格减一,所以直接分解质因数看奇偶性就好了。

Code

void R()
{
	int x,cnt=0;
	cin>>x;
	for (int i=2;i*i<=x;i++)
		while (x%i==0)
		{
			x/=i;
			cnt++;
		}
	if (x!=1) cnt++;
	cout<<(cnt&1?"kou":"yukari")<<'\n';
	return;
}

Hard 小红送外卖

简要题意

给定一张带权无向图,求点 到若干个点的最短路径长度和。

Solution

直接跑一遍 Dijkstra 就好了。

Code

void R()
{
	using pii=pair<int,int>;
	int n,m,q;
	cin>>n>>m>>q;
	vector<vector<pii>> adj(n);
	for (int i=0;i<m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		u--,v--;
		adj[u].push_back({v,w});
		adj[v].push_back({u,w});
	}

	vector<int> d(n,1e9),vis(n);
	priority_queue<pii,vector<pii>,greater<pii>> que;
	d[0]=0;
	que.push({0,0});
	while (!que.empty())
	{
		auto [t,u]=que.top();
		que.pop();
		if (vis[u]) continue;
		vis[u]=1;
		for (auto [v,w]:adj[u])
			if (d[v]>d[u]+w)
			{
				d[v]=d[u]+w;
				que.push({d[v],v});
			}
	}

	i64 ans=0;
	while (q--)
	{
		int x;
		cin>>x;
		ans+=d[x-1];
	}
	cout<<ans*2;
	return;
}
#牛客春招刷题训练营#
全部评论

相关推荐

我对信贷业务其实不是特别感兴趣(当然也有价值,能把钱借给真正需要的人),但是对交易反欺诈这条线真的很感兴趣,觉得真的超级有意义。反欺诈产品是我们组支撑的产品线之一,看到和北京警企合作的推文,觉得报国有门,无比激动,我们未来的每一行代码,都能改变世界,帮助弱者不再受骗。还记得当时面试的时候,HR说我超过了很大部分二本学生的思维(后来知道我是我们组唯一的二本生),问我是如何做到的。我说因为16岁时候的梦想,我要做国家需要的工程师,后来发现自己不擅长物理,做不了芯片,但是一直希望自己能够做对社会真正有意义的产品。也记得第一次熟悉组里业务的时候,看到组里有一个产品叫交易反欺诈,当时仿佛触电一样,这简直是我接触到的最有意义的产品,下定决心以后一定要做这条产品线。我为警方办事,那我也是网络警察,我就可以改变这个世界(手动狗头)。也许没有人会知道我们的名字,但是我想大家一定能够感受到,是因为我们这些人的存在,生活才会有更多美好。当然,改变世界这个美好愿望,可能等我正式入职后会被工作毒打,可能上班就只想着下班,但人生总该有点期待,希望半年后再看自己这条动态,能欣慰的笑出来。我的原生家庭不怎么幸福,一路单打独斗到现在,我渴望靠工作改变命运,过上比父辈更好的生活,也更渴望自己成为自己幼年心目中那个了不起的英雄,为世界做出微小且美好的改变。
真烦好烦真烦:厉害,虽然现实很残酷,但是能在内心有自己的一份坚守真是太厉害了
牛客创作赏金赛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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