米哈游后端笔试第一场(含1,2题代码)

太菜了只做出两题,有没有大佬出了第三题

第一题:求两点间最短曼哈顿距离,可以穿越边界

#include <bits/stdc++.h>

using i64 = long long;

i64 n, m;

i64 getDist(std::pair<i64, i64> a, std::pair<i64, i64> b) {
	return std::min(std::abs(a.first - b.first), n - std::abs(a.first - b.first))
		+ std::min(std::abs(a.second - b.second), m - std::abs(a.second - b.second));
}

int main() {
	std::ios::sync_with_stdio(0);
	std::cin.tie(0);

	std::cin >> n >> m;
	std::vector<std::pair<i64, i64>> v(3);
	for (i64 i = 0; i < 3; i++) {
		std::cin >> v[i].first >> v[i].second;
	}

	std::cout << getDist(v[0], v[1]) + getDist(v[1], v[2]) << "\n";

	return 0;
}

第二题,树形dp瞎搞,dp[u]表示以u为根节点,最大有多少个节点距离根节点1的距离不超过k的数量

#include <bits/stdc++.h>

using i64 = long long;

int main() {
	std::ios::sync_with_stdio(0);
	std::cin.tie(0);

	int n, k;
	std::cin >> n >> k;
	std::vector adj(n, std::vector<int>());
	for (int i = 0; i < n - 1; i++) {
		int u, v;
		std::cin >> u >> v;
		u--, v--;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}

	std::vector<i64> dp(n);
	std::vector<int> d(n); // depth

	auto dfs = [&](auto self, int x, int fa) -> void {
		for (int y : adj[x]) {
			if (y == fa) continue;
			d[y] = d[x] + 1;
			self(self, y, x);
		}
	};

	auto calc = [&](auto self, int x, int fa) -> void {
		if (d[x] > k) {
			return;
		}
		dp[x] = 1;

		bool isLeaf = true;
		for (int y : adj[x]) {
			if (y == fa) continue;
			self(self, y, x);
			isLeaf = false;
			dp[x] += dp[y];
		}

		if (isLeaf) {
			dp[x] = k - d[x] + 1;
		}
	};

	dfs(dfs, 0, -1);
	calc(calc, 0, -1);

	std::cout << dp[0] << "\n";

	return 0;
}

第三题,数学概率题,不会

#米哈游##笔试##我的实习求职记录#
全部评论
概率论的期望咋算我都忘了你不是一个人
1 回复 分享
发布于 2023-08-13 22:59 北京
T3不是纯模拟吗……前几年在某个小比赛出过一个几乎一样的签到题。 因为不是模意义下而是精度运算的,所以也不用推公式。直接用now去统计某个分支的概率,然后衍生的两个分支就是now*p和now*(1-p),随便加一加就行。
点赞 回复 分享
发布于 2023-08-14 16:06 广东
佬哥,平时刷题leetcode吗,树形dp用啥网站刷
点赞 回复 分享
发布于 2023-08-14 14:37 陕西
请问t2为什么不能直接层序遍历统计答案,个人理解不需要dp吧?
点赞 回复 分享
发布于 2023-08-13 23:08 上海
树形dp是怎么练习的
点赞 回复 分享
发布于 2023-08-13 22:58 安徽

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下&nbsp;字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

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