• hdu 4022 STL


    题意:给你n个敌人的坐标,再给你m个炸弹和爆炸方向,每个炸弹可以炸横排或竖排的敌人,问你每个炸弹能炸死多少个人。

     1 /*
     2 HDU 4022
     3 G++ 1296ms
     4 
     5 
     6 */
     7 
     8 
     9 #include<stdio.h>
    10 #include<iostream>
    11 #include<set>
    12 #include<map>
    13 #include<algorithm>
    14 using namespace std;
    15 
    16 // 建立一个 map,从 int 到 一个 multiset 容器的映射
    17 typedef map<int,multiset<int> > line;// 两个>间一定要加个空格
    18 map<int,multiset<int> >mx;//定义x坐标对应的map
    19 map<int,multiset<int> >my;//定义y坐标对应的map
    20 
    21 int bomb(line &x,line &y,int pos)
    22 {
    23     int ret=x[pos].size();
    24     multiset<int>::iterator it;//这个学习下
    25     for(it=x[pos].begin();it!=x[pos].end();it++)
    26        y[*it].erase(pos);//multiset 去除一个元素
    27     x[pos].clear();//清空multiset
    28     return ret;
    29 }
    30 int main()
    31 {
    32     int n,m;
    33     int c,d;
    34     int tx,ty;
    35     while(scanf("%d%d",&n,&m)!=EOF)
    36     {
    37         if(n==0&&m==0)break;
    38         mx.clear();
    39         my.clear();
    40         for(int i=0;i<n;i++)
    41         {
    42             scanf("%d%d",&tx,&ty);
    43             mx[tx].insert(ty);
    44             my[ty].insert(tx);
    45         }
    46         for(int i=0;i<m;i++)
    47         {
    48             scanf("%d%d",&c,&d);
    49             int ans;
    50             if(c==0) ans=bomb(mx,my,d);
    51             else ans=bomb(my,mx,d);
    52             printf("%d
    ",ans);
    53         }
    54         printf("
    ");
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    水洼,八连杀
    友链
    万能转换字符类型到int ,int到string,string到char or char *等等
    蓝桥杯模拟赛题
    2020 03 21
    2019 12 02 reading
    CentOS 7 定时计划任务设置
    xinted &telnet
    2019 12 02 section C one
    【暖*墟】#洛谷网课1.30# 树上问题
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4318711.html
Copyright © 2020-2023  润新知