首页 > 其他分享 >NC235267 星球大战

NC235267 星球大战

时间:2022-08-30 13:12:14浏览次数:90  
标签:map NC235267 int 星球大战 list 坐标 题目

题目

  • 原题地址:星球大战
  • 题目编号: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();
        }
    }
}

标签:map,NC235267,int,星球大战,list,坐标,题目
From: https://www.cnblogs.com/zhangyi101/p/16638911.html

相关文章