2017计蒜之道初赛第四场AB两题题解
来源:互联网 发布:量化交易算人工智能吗 编辑:程序博客网 时间:2024/06/09 16:15
A题:商汤科技致力于引领人工智能核心“深度学习”技术突破,构建人工智能、大数据分析行业解决方案。作为一家人工智能公司,用机器自动地解决各类实际问题自然不在话下。近日,商汤科技推出了一套安全令牌,令牌如下图所示:
安全令牌上的小孔有 nnn 行 mmm 列,不过有些行和有些列已经用导线整体焊接了,共有 kkk 根导线。
我们可以在安全令牌上 不重叠 地焊接若干个小芯片,每个芯片需要在相邻(不能斜着相邻,必须平行于行或列)的两个没有被焊接的小孔上固定。不能固定在已经被整体焊接的行或列上。
安全令牌上最多可以放置多少个芯片,就代表了这个安全令牌对应的校验码。当然,由于安全令牌上小孔的密度会很大,是很难目测出对应的校验码的。你作为商汤科技的实习生,需要写出一个程序,能够自动地算出一个给定的安全令牌的校验码。
输入格式
输入第一行三个整数 n,m(1≤n,m≤100)n,m(1 \le n,m \le 100)n,m(1≤n,m≤100),k(0≤k≤n+m)k(0 \le k \le n + m)k(0≤k≤n+m)。
接下来输入 kkk 行,每行输入两个整数 d(0≤d≤1)d(0 \le d \le 1)d(0≤d≤1),ccc。如果d=0d = 0d=0,表示第c(1≤c≤n)c(1 \le c \le n)c(1≤c≤n) 行被整体焊接了,如果 d=1d = 1d=1,表示第c(1≤c≤m)c(1 \le c \le m)c(1≤c≤m) 列被整体焊接了。
输出格式
输出安全令牌对应的校验码。
样例输入
4 5 20 31 4
样例输出
5
解题思路:安全令牌分割成为若干个独立的矩形区域。一个矩形区域如果长和宽都是奇数,那么就会多出一个小孔,否则每个小孔都能用上。
#include#define MAXSIZE 100int map[MAXSIZE+1][MAXSIZE+1],n,m;int dfs(int i,int j){if(i<=0||i>n||j<=0||j>m){return 0;}if(map[i][j]==1){return 0;}else{map[i][j]=1;return 1+dfs(i+1,j)+dfs(i,j+1);}}int main(){int k,i,j,count=0,d,c;scanf("%d %d %d",&n,&m,&k);for(i=1;i<=n;i++){for(j=1;j<=m;j++){map[i][j]=0;}}for(i=0;i
B题:
商汤科技近日推出的 SenseVideo 能够对视频监控中的对象进行识别与分析,包括行人检测等。在行人检测问题中,最重要的就是对行人移动的检测。由于往往是在视频监控数据中检测行人,我们将图像上的行人抽象为二维平面上若干个的点。那么,行人的移动就相当于二维平面上的变换。
在这道题中,我们将行人的移动过程抽象为 平移,有两个 移动参数:dx 和 dy。每次行人的移动过程会将行人对应的所有点全部平移,对于平移前的点 (x,y),平移后的坐标为 (x+dx,y+dy)。
我们现在已知一个行人对应着 n 个点,坐标分别为 (x1,y1),(x2,y2)…(xn,yn),平移后的坐标分别为 (x1′,y1′),(x2′,y2′)…(xn′,yn′)。
很显然,通过平移前后的正确坐标,很容易算出行人的移动参数,但问题没有这么简单。由于行人实际的移动并不会完全按照我们预想的方式进行,因此,会有一部分平移后的坐标结果不正确,但可以确保 结果不正确的坐标数量严格不超过一半。
你现在作为商汤科技的实习生,接手了这个有趣的挑战:算出行人的移动参数。如果不存在一组合法的移动参数,则随意输出一组参数;如果有多种合法的移动参数,输出其中任意一组合法的即可。
输入格式
第一行输入一个整数 n(1≤n≤105),表示行人抽象出的点数。
接下来 n 行,每行 4 个 整数。前两个数表示平移前的坐标,后两个数表示平移后的坐标。
坐标范围在 −109 到 109 之间。
输出格式
一行两个整数,dx 和 dy,表示行人的移动参数。
样例输入
50 0 1 10 1 1 21 0 2 11 1 0 02 1 1 0
样例输出
1 1
本题给定 n 对变换前后的二维点,要求在有一定容错(错误的点对数严格不超过一半)的情况下,对变换进行复原。其关键条件在于对容错率的限制:错误的点对数严格不超过一半。由于只有平移,我们可以首先计算出每对点对应的平移量。由于错误的点对数严格不超过一半,我们可以直接统计 n 组平移量中的众数,即可得到答案。
本题还可以通过限制内存,要求大家在常数内存下完成。只需要一个计数器和一个与计数器对应的平移量即可。每次读入一个点对,计算新的平移量。
(1)若此时计数器为 0,则存下这个平移量,计数器修改为 1;
(2)若此时计数器不为 0,则检查是否与存着的平移量相同:如果相同,则计数器加一;否则减一。最终幸存下来的平移量即为答案。
#includetypedef struct{int x;int y;int num;}node;node str[100001];int count=0;int main(){int n,i,j,a,b;int x1,x2,x3,x4,flag;scanf("%d",&n);for(i=0;i =n){printf("%d %d",str[i].x,str[i].y);break;}}}
- 2017计蒜之道初赛第四场AB两题题解
- 2017计蒜之道程序设计大赛初赛第四场题解
- 2017 计蒜之道初赛第五场题解
- 2017 计蒜之道初赛第六场 题解
- 2017 计蒜之道 初赛 第四场
- 2017 计蒜之道 初赛 第四场
- 2017 计蒜之道 初赛 第四场 (计蒜课比赛)第一题
- 计蒜之道 初赛 第二场 题解 树形dp
- 2017计蒜之道程序设计大赛初赛第一场题解
- 2017计蒜之道程序设计大赛初赛第二场题解
- 2017计蒜之道程序设计大赛初赛第三场题解
- 2017计蒜之道程序设计大赛初赛第五场题解
- 2017计蒜之道程序设计大赛初赛第六场题解
- 2017计蒜之道初赛第四场-商汤科技的安全令牌
- 2017计蒜之道初赛第四场-商汤科技的行人检测(简单)
- 2017 计蒜之道 初赛 第四场 (第二题) B. 商汤科技的行人检测(简单)
- 2017计蒜之道初赛第一场
- 2017计蒜之道 初赛 第一场
- 1479 Problem C勤劳的ACgirls
- Tian Ji -- The Horse Racing HDU
- eclipse新建的web程序,其后创建了一个jsp文件,第一行就出现红叉
- 【Lucas】【数论】 17.6.2 组合数取模 题解
- bzoj 3944 Sum
- 2017计蒜之道初赛第四场AB两题题解
- Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver
- Concert Hall Scheduling UVALive
- Android 最火的快速开发框架androidannotations配置详解
- 关键路径问题(括扑排序扩展)
- Lintcode——链表插入排序
- leetcode hard模式专杀之10Regular Expression Matching
- 【欧拉函数】【数论】17.6.2 数学题 题解
- 设计模式(11)-Composite 组合模式