NC235267 星球大战

题目

  • 原题地址:星球大战
  • 题目编号:NC235267
  • 题目类型:map、list
  • 时间限制:C/C++ 2秒,其他语言4秒
  • 空间限制:C/C++ 262144K,其他语言524288K

1.题目大意

  • 二维平面上n个坐标对应着敌人,m次操作,每次操作消除指定的一行或一列的敌人,问每次操作消灭的敌人的个数

2.题目分析

  • 使用map存储每个出现的x坐标对应的所有y坐标,以及每个出现的y坐标对应的所有x坐标
  • 消灭的敌个数就是list的大小,例如消灭x=d直线上的所有敌人,消灭的敌人数就是x对应的存储y坐标的list的大小
  • 随后遍历该x对应的所有ylist,从中移除该x,最后再将该xlist清空

3.题目代码

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    map<int, list<int>> xx, yy;
    int x, y;
    for(int i=0;i<n;i++) {
        cin >> x >> y;
        xx[x].push_back(y);
        yy[y].push_back(x);
    }
    int c, d;
    while(m--) {
        cin >> c >> d;
        if(!c) {
            cout << xx[d].size() << endl;
            for(auto k: xx[d]) yy[k].remove(d);
            xx[d].clear();
        } else {
            cout << yy[d].size() << endl;
            for(auto k: yy[d]) xx[k].remove(d);
            yy[d].clear();
        }
    }
}
posted @   仪战群儒  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示