u1s1,好难。。两个小时根本做不完。最后找第三题的bug找到凌晨四点才过。
试题链接:2019校招笔试编程题合集
1、城市修建
题意:有一个城市需要修建,给你N个民居的坐标X,Y,问把这么多民居全都包进城市的话,城市所需最小面积是多少(注意,城市为平行于坐标轴的正方形)
题解:记得看题,是正方形!!!。先开始一直没过以为是长方形来着。。
记录输入的最大x,y和最小小x,y。然后相减,比较减出来最大的那个就是所求边长了。
代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 const int inf = 1e9*5; 5 6 7 int main(){ 8 int n; 9 cin>>n; 10 ll x,y; 11 ll x1 = inf,y1 = inf; 12 ll x2 = -inf,y2 = -inf; 13 for(int i = 0 ;i < n;i++){ 14 cin>>x>>y; 15 x1 = min(x,x1); 16 y1 = min(y,y1); 17 x2 = max(x,x2); 18 y2 = max(y,y2); 19 } 20 21 ll width = abs(x2-x1); 22 ll height = abs(y2-y1); 23 24 ll ans = max(width,height); 25 26 cout<<ans*ans<<endl; 27 28 return 0; 29 }