zoukankan      html  css  js  c++  java
  • hdu 4022 Bombing(map)

    题目链接:https://vjudge.net/problem/HDU-4022

      用两个map来模拟,一个x到y的映射,一个y到x的映射,关于怎么解决删除重复元素的问题,可以在每次删除一个映射的元素的时候,删除掉对应的另外一个映射的元素

    #pragma G++ optimize(2)
    #include<set>
    #include<map>
    #include<stack>
    #include<queue>
    #include<cmath>
    #include<stdio.h>
    #include<cctype>
    #include<string>
    #include<vector>
    #include<climits>
    #include<cstring>
    #include<cstdlib>
    #include<iostream>
    #include<algorithm>
    #define endl '\n'
    #define max(a, b) (a > b ? a : b)
    #define min(a, b) (a < b ? a : b)
    #define mst(a) memset(a, 0, sizeof(a))
    #define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> P;
    const double eps = 1e-7;
    const int INF = 0x3f3f3f3f;
    const ll ll_INF = 0x3f3f3f3f3f3f3f;
    const int maxn = 1e3 + 10;
    map<int, multiset<int> > xbase; //x到y的映射
    map<int, multiset<int> > ybase; //y到x的映射
    typedef map<int, multiset<int> > ite;
    int booms(ite &x, ite &y, int pos) { 
        for (multiset<int>::iterator it = x[pos].begin(); it != x[pos].end(); ++it)
            y[*it].erase(pos); //删除被炸弹炸掉的元素
        int res = x[pos].size(); //炸弹炸掉的基地数量
        x[pos].clear(); //模拟炸弹清空对应的行(列)
        return res;
    }
    int main(void) {
        //std::ios::sync_with_stdio(false);
        int n, m;
        while(~scanf("%d%d", &n, &m) && (n||m)) {
            for (int i = 0, x, y; i<n; ++i) {
                scanf("%d%d", &x, &y);
                xbase[x].insert(y);
                ybase[y].insert(x);
            }
            for (int i = 0, c, d; i<m; ++i) {
                scanf("%d%d", &c, &d);
                if (!c)
                    printf("%d\n", booms(xbase, ybase, d));
                else 
                    printf("%d\n", booms(ybase, xbase, d));
            }
            xbase.clear();
            ybase.clear();
            putchar(endl);
        }
        return 0;
    }
  • 相关阅读:
    前后端分离的坑
    appscan 对于csrf漏洞扫描的坑
    appscan执行过程
    app scan状态码的坑
    linux修改jdk版本
    软件测试之性能测试
    jmeter 从文件中读取内容 CSV数据文件设置(CSV Data Set Config)
    robotframework基本操作
    robotframework生成随机数
    RobotFramework获取table的行数
  • 原文地址:https://www.cnblogs.com/shuitiangong/p/12210461.html
Copyright © 2011-2022 走看看