华为笔试(9月13日)

T1,T2较简单就不发了

T3 思维题,一个格子只被覆盖一次时,覆盖它的基站一定选,因为网格很大,用map离散化

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
#define lowbit(x)x & (-x)
const int N = 1e4 + 10, mod = 1e9 + 7,inf = 1e9;

map<int, map<int, int>>g;
vector<pair<int, int>> dic = {{0,0},{0,-1},{0,1},{1,0},{1,1},{1,-1},{-1,0},{-1,-1},{-1,1}};
int x[N],y[N];

void solve(){
    int n, ans = 0,cnt = 0;
    cin >> n;
    for(int i = 1; i<= n; ++i){
        cin >>x[i] >>y[i];
        for(auto [dx, dy] : dic){
            dx += x[i];
            dy += y[i];
            g[dx][dy]++;
            if(dx >= 0 && dy >= 0 && dx < 10000 && dy < 10000 && g[dx][dy] == 1){
                ans++;
            }
        }
    }
    for(int i = 1; i <= n; ++i){
        bool flag = false;
        for(auto [dx, dy] : dic){
            dx += x[i];
            dy += y[i];
            if(dx >= 0 && dy >= 0 && dx < 10000 && dy < 10000 && g[dx][dy] == 1){
                flag = true;
            }
        }
        cnt += flag;
    }
    cout << cnt << " "<< ans << '\n';
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    while(t--){
        solve();
    }
    return 0;
}

只过了 95%,可能是边界问题?不懂

#笔试##华为#
全部评论
为啥不用um
点赞 回复 分享
发布于 2023-09-14 12:34 山东
基站没有放置的时候,相应的区域应该减一,可能存在多次去重问题
点赞 回复 分享
发布于 2023-09-14 08:40 湖南

相关推荐

04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
牛客246576843号:建议简历对点优化,想做HR专门列出HR实习,想做运营专门列出运营实习,并且对点写出项目经历以及数据,同时在个人总结上可以多凸出和岗位的匹配度
点赞 评论 收藏
分享
bg&nbsp;为&nbsp;985&nbsp;本应届生,方向是嵌入式软件。纠结了很久,两边都不太了解,恳请各位大佬帮选,非常感谢🙏。
ResourceUtilization:求稳海能达,趁着年轻赚它一笔就relink吧,有个疑惑,怎么睿连同岗位多这么多base原因吗
点赞 评论 收藏
分享
评论
4
9
分享

创作者周榜

更多
牛客网
牛客企业服务