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%,可能是边界问题?不懂
点赞 4
评论 2
全部评论

相关推荐

07-18 13:49
门头沟学院 Java
26小林不会梦到感谢...:这个点还在面暑期嘛不是马上开秋招了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务