{/'title/':/'天使玩偶寻宝:用曼哈顿距离找到你的童年回忆/',/'description/':/'Ayu 七年前埋藏了她的天使玩偶,现在却忘记了埋藏地点。你能帮助她利用模糊的记忆和曼哈顿距离找到玩偶吗?/',/'keywords/':/'天使玩偶, 寻宝, 曼哈顿距离, 坐标系, 算法, C++/',/'content/':/'///'Ayu 在七年前曾经收到过一个天使玩偶,当时她把它当做时间囊埋在了地下。//n而七年后的今天,Ayu 却忘了她把天使玩偶埋在了哪里,所以她决定仅凭一点模糊的记忆来寻找它。//n我们把 Ayu 生活的小镇看做一个二维平面直角坐标系,而 Ayu 会不定时的记起可能在某个点 (x,y) 埋下了天使玩偶。//n或者 Ayu 会询问你,假如她在 (x,y),那么她离最近的天使玩偶可能埋下的地方有多远。//n因为 Ayu 只会沿着平行坐标轴的方向来行动,所以在这个问题里我们定义两个点之间的距离为曼哈顿距离://n//ndist(A,B)=|A_x - B_x| + |A_y - B_y|//n//n其中 A_x 表示点 A 的横坐标,其余类似。//n//n输入描述//n//n第一行包含两个整数 n 和 m,在刚开始时,Ayu 已经知道有 n 个点可能埋着天使玩偶,接下来 Ayu 要进行 m 次操作。//n接下来 n 行,每行两个非负整数 x_i,y_i,表示初始 n 个点的坐标。//n再接下来 m 行,每行三个非负整数 t,x,y。//n如果 t=1,表示 Ayu 又回忆起了一个可能埋着玩偶的点 (x,y)。//n如果 t=2,表示 Ayu 询问如果她在坐标 (x,y),那么在已经回忆出的点里,离她最近的那个点有多远。//n//n输出描述//n//n对于每个 t=2 的询问,在单独的一行内输出该询问的结果。//n//n样例输入 1 //n//n2 3//n1 1//n2 3//n2 1 2//n1 3 3//n2 4 2//n//n样例输出 1 //n//n1//n2//n//n提示//n//nn,m≤5×10^5,坐标范围为 0∼10^6//n//n//nc++内容:#include //n#include //n#include //n#include //nusing namespace std;//n//nint main() {//n int n, m;//n cin >> n >> m;//n vector<pair<int, int>> points(n);//n for (int i = 0; i < n; i++) {//n cin >> points[i].first >> points[i].second;//n }//n vector<pair<int, int>> memories;//n for (int i = 0; i < m; i++) {//n int t, x, y;//n cin >> t >> x >> y;//n if (t == 1) {//n memories.push_back(make_pair(x, y));//n } else if (t == 2) {//n int min_dist = numeric_limits::max();//n for (auto& memory : memories) {//n int dist = abs(memory.first - x) + abs(memory.second - y);//n min_dist = min(min_dist, dist);//n }//n cout << min_dist << endl;//n }//n }//n return 0;//n}//n/'}/


原文地址: https://www.cveoy.top/t/topic/pLkR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录