裁减网格纸----百度2016研发工程师在线编程题
2016-08-03 21:24
465 查看
[编程题] 裁减网格纸
度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
输入描述:
输出描述:
输入例子:
输出例子:
这题我得吐槽一下样例了啊
有个538的样例没有跑过去,然后我把样例拷贝下来了,看了一眼就200多行
后来看到题目中确实没有说 接下来的n行这种字样, 我以为可能就是不给足n行,又跑了一次,又挂这个样例上了
最后看了一眼,9274根本就不是一个整数的平方,这答案是怎么给出来的
这题就记录一下x轴的max距离和y轴的max距离就行了啊。
第二次做,一杆过~
#include <iostream>
#include <vector>
using namespace::std ;
int main() {
int n ;
while ( cin >> n ) {
vector<int> x ;
vector<int> y ;
for ( int i = 0 ; i < n; ++ i ) {
int tmp_x, tmp_y ;
cin >> tmp_x >> tmp_y ;
x.push_back( tmp_x ) ;
y.push_back( tmp_y ) ;
}
int minx, miny, maxx, maxy ;
minx = maxx = x[0] ;
miny = maxy = y[0] ;
for ( int i = 0; i < n; ++ i ) {
if ( x[i] > maxx ) maxx = x[i] ;
if ( x[i] < minx ) minx = x[i] ;
if ( y[i] > maxy ) maxy = y[i] ;
if ( y[i] < miny ) miny = y[i] ;
}
int result = 0 ;
int length_x = maxx - minx ;
int length_y = maxy - miny ;
if ( length_x > length_y ) result = length_x * length_x ;
else result = length_y * length_y ;
cout << result << endl ;
}
return 0 ;
}
度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
输入描述:
第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表示网格上的点
输出描述:
一行输出最小面积
输入例子:
2 0 0 0 3
输出例子:
9
这题我得吐槽一下样例了啊
有个538的样例没有跑过去,然后我把样例拷贝下来了,看了一眼就200多行
后来看到题目中确实没有说 接下来的n行这种字样, 我以为可能就是不给足n行,又跑了一次,又挂这个样例上了
最后看了一眼,9274根本就不是一个整数的平方,这答案是怎么给出来的
这题就记录一下x轴的max距离和y轴的max距离就行了啊。
#include <iostream> #include <vector> using namespace::std ; int main() { int n ; while ( cin >> n ) { vector<int> x( n, 0 ) ; vector<int> y( n, 0 ) ; for ( int i = 0; i < n; ++ i ) { cin >> x[i] >> y[i] ; } int minx, miny, maxx, maxy ; minx = maxx = x[0] ; miny = maxy = y[0] ; for ( int i = 1; i < n; ++ i ) { if ( minx > x[i] ) minx = x[i] ; if ( maxx < x[i] ) maxx = x[i] ; if ( miny > y[i] ) miny = y[i] ; if ( maxy < y[i] ) maxy = y[i] ; } int result = 0 ; int x_length = maxx - minx ; int y_length = maxy - miny ; if ( x_length > y_length ) result = x_length * x_length ; else result = y_length * y_length ; cout << result << endl ; } return 0 ; }
第二次做,一杆过~
#include <iostream>
#include <vector>
using namespace::std ;
int main() {
int n ;
while ( cin >> n ) {
vector<int> x ;
vector<int> y ;
for ( int i = 0 ; i < n; ++ i ) {
int tmp_x, tmp_y ;
cin >> tmp_x >> tmp_y ;
x.push_back( tmp_x ) ;
y.push_back( tmp_y ) ;
}
int minx, miny, maxx, maxy ;
minx = maxx = x[0] ;
miny = maxy = y[0] ;
for ( int i = 0; i < n; ++ i ) {
if ( x[i] > maxx ) maxx = x[i] ;
if ( x[i] < minx ) minx = x[i] ;
if ( y[i] > maxy ) maxy = y[i] ;
if ( y[i] < miny ) miny = y[i] ;
}
int result = 0 ;
int length_x = maxx - minx ;
int length_y = maxy - miny ;
if ( length_x > length_y ) result = length_x * length_x ;
else result = length_y * length_y ;
cout << result << endl ;
}
return 0 ;
}
相关文章推荐
- 百度2016研发工程师在线编程题 4.蘑菇阵
- 风口的猪-中国牛市(动态规划)----百度2016研发工程师在线编程题
- 罪犯转移(滑动窗口)----百度2016研发工程师在线编程题
- 百度2016研发工程师在线编程题
- 钓鱼比赛(平均概率公式:1 - (1-p)^ t)----百度2016研发工程师在线编程题
- 百度2016研发工程师在线编程题 - 题解
- [编程题] 最大间隔 java 蘑菇街2016研发工程师在线编程题
- 棋子翻转----美团2016研发工程师在线编程题
- 回文串---蘑菇街2016研发工程师在线编程题
- 蘑菇街2016研发工程师在线编程题
- [编程题] 回文串 java 蘑菇街2016研发工程师在线编程题
- 拜访(动态规划)----美团2016研发工程师在线编程题
- 直方图内最大矩形---- 美团2016研发工程师在线编程题
- 2016百度编程题:裁减网格纸
- 平均年龄(<cmath> 中 ceil 函数的应用)---- 美团2016研发工程师在线编程题
- 百度2016校园招聘-开发测试工程师-在线编程题2-比大小
- 蘑菇街2016研发工程师在线编程题
- 最大差值----美团2016研发工程师在线编程题
- 字符串计数(字典序)---- 美团2016研发工程师在线编程题
- 简单递推 - 动态规划 - 百度2016研发工程师编程题 - 蘑菇阵