2017 计蒜之道 初赛 第四场 (第二题) B. 商汤科技的行人检测(简单)
2017-05-31 16:42
302 查看
商汤科技近日推出的 SenseVideo 能够对视频监控中的对象进行识别与分析,包括行人检测等。在行人检测问题中,最重要的就是对行人移动的检测。由于往往是在视频监控数据中检测行人,我们将图像上的行人抽象为二维平面上若干个的点。那么,行人的移动就相当于二维平面上的变换。
在这道题中,我们将行人的移动过程抽象为 平移,有两个 移动参数:dxdx 和 dydy。每次行人的移动过程会将行人对应的所有点全部平移,对于平移前的点 (x,y)(x,y),平移后的坐标为 (x+dx,y+dy)(x+dx,y+dy)。
我们现在已知一个行人对应着 nn 个点,坐标分别为 (x1,y1),(x2,y2)…(xn,yn)(x1,y1),(x2,y2)…(xn,yn),平移后的坐标分别为 (x1′,y1′),(x2′,y2′)…(xn′,yn′)(x1′,y1′),(x2′,y2′)…(xn′,yn′)。
很显然,通过平移前后的正确坐标,很容易算出行人的移动参数,但问题没有这么简单。由于行人实际的移动并不会完全按照我们预想的方式进行,因此,会有一部分平移后的坐标结果不正确,但可以确保 结果不正确的坐标数量严格不超过一半。
你现在作为商汤科技的实习生,接手了这个有趣的挑战:算出行人的移动参数。如果不存在一组合法的移动参数,则随意输出一组参数;如果有多种合法的移动参数,输出其中任意一组合法的即可。
接下来 nn 行,每行 44 个 整数。前两个数表示平移前的坐标,后两个数表示平移后的坐标。
坐标范围在 −109−109 到 109109 之间。
在这道题中,我们将行人的移动过程抽象为 平移,有两个 移动参数:dxdx 和 dydy。每次行人的移动过程会将行人对应的所有点全部平移,对于平移前的点 (x,y)(x,y),平移后的坐标为 (x+dx,y+dy)(x+dx,y+dy)。
我们现在已知一个行人对应着 nn 个点,坐标分别为 (x1,y1),(x2,y2)…(xn,yn)(x1,y1),(x2,y2)…(xn,yn),平移后的坐标分别为 (x1′,y1′),(x2′,y2′)…(xn′,yn′)(x1′,y1′),(x2′,y2′)…(xn′,yn′)。
很显然,通过平移前后的正确坐标,很容易算出行人的移动参数,但问题没有这么简单。由于行人实际的移动并不会完全按照我们预想的方式进行,因此,会有一部分平移后的坐标结果不正确,但可以确保 结果不正确的坐标数量严格不超过一半。
你现在作为商汤科技的实习生,接手了这个有趣的挑战:算出行人的移动参数。如果不存在一组合法的移动参数,则随意输出一组参数;如果有多种合法的移动参数,输出其中任意一组合法的即可。
输入格式
第一行输入一个整数 n(1≤n≤105)n(1≤n≤105),表示行人抽象出的点数。接下来 nn 行,每行 44 个 整数。前两个数表示平移前的坐标,后两个数表示平移后的坐标。
坐标范围在 −109−109 到 109109 之间。
输出格式
一行两个整数,dxdx 和 dydy,表示行人的移动参数。样例输入
5 0 0 1 1 0 1 1 2 1 0 2 1 1 1 0 0 2 1 1 0
样例输出
1 1
一个非常有意思的题目,首先有两种情况,一种是 每组的差, 有众数(大于半数), 另一种 就是没有众数。
有一个时间复杂度O(n),空间复杂度O(1)的算法。对于存在大于半数的众数,任意取两数,不相同则消去(计数器-1),相同就计数器+1,最后剩下的一定是众数。
对于非众数的情况,随便输出一组数据就好了(
#include <iostream> #include <cmath> #include <string> #include <algorithm> #include <string.h> using namespace std; int main() { int n; int a, b, c, d; int x = 0, y = 0; int cnt = 0; cin >> n; for (int i = 0; i < n; ++i) { cin >> a >> b >> c >> d; if (cnt == 0) { x = c - a; y = d - b; cnt++; } else { if (x == c - a && y == d - b) cnt++; else cnt--; } } cout << x <<" "<<y << endl; }
相关文章推荐
- 2017计蒜之道初赛第四场-商汤科技的行人检测(简单)
- 2017 计蒜之道 第四场 商汤科技的行人检测(简单)
- 2017计蒜之道 第四场 商汤科技的行人检测(简单)
- 计蒜之道 2017第四场B 商汤科技的行人检测(简单)
- 计蒜客 2017 第四场 商汤科技的行人检测(中等)(几何)
- 计蒜客 第四场 C 商汤科技的行人检测(中等)平面几何好题
- 计蒜客 第四场 C 商汤科技的行人检测(中等)平面几何好题
- 2017计蒜之道初赛第四场-商汤科技的安全令牌
- 商汤科技的行人检测(简单)
- 2017计蒜之道初赛_百度的科学计算器(简单难度)
- 2017计蒜之道程序设计大赛初赛第四场题解
- 计蒜客 2017 初赛第一场 B. 阿里天池的新任务(简单)
- 2017 计蒜之道 初赛 第二场 B.百度的科学计算器(简单)
- 2017 计蒜之道 初赛 第二场 B.百度的科学计算器(简单)
- 2017 计蒜之道 初赛 第二场 B.百度的科学计算器(简单)
- 2017 计蒜之道 初赛 第二场 B.百度的科学计算器(简单)
- 计蒜客 2017 初赛第一场 B. 阿里天池的新任务(简单)
- 计蒜客 2017 初赛第一场 B. 阿里天池的新任务(简单)
- 2017 计蒜之道 初赛 第二场 B.百度的科学计算器(简单)
- 计蒜客 2017 初赛第一场 B. 阿里天池的新任务(简单)