题意:n个基地放在2维平面,然后m个炸弹人,每个炸弹人可以炸一行或者一列,输出每个炸弹人炸掉的基地个数。
思路:用map
#include
#include
#include
#include
using namespace std;
typedef map
map
map
int bomb(line &x,line &y,int pos){
multiset
for(it=x[pos].begin();it!=x[pos].end();++it)
y[*it].erase(pos);
int ret=x[pos].size();
x[pos].clear();
return ret;
}
int main(){
int n,m,x,y,c,d,i,ans;
while(~scanf("%d%d",&n,&m)){
if(n==0&&m==0)break;
mx.clear();
my.clear();
for(i=0;i scanf("%d%d",&x,&y); mx[x].insert(y); my[y].insert(x); } for(i=0;i scanf("%d%d",&c,&d); if(c==0)ans=bomb(mx,my,d); else ans=bomb(my,mx,d); printf("%d\n",ans); } printf("\n"); } return 0; } View Code 相关链接
发表评论