题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4941
1 3 3 2 1 1 1 2 2 2 5 3 1 1 1 1 2 2 1 2 3 1 1 3 2 2
Case #1: 1 2 1HintNo two fruits at the same location.
题意:
有一个n*m的田地,里边有k棵树,每棵树的位置为(xi,yi),含有能量值ci。之后又q个询问,分三种;
1)1 a b,将a行和b行交换
2)2 a b,将a列和b列交换
3)3 a b,询问(a,b)位置的果树的能量值。
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
struct node
{
int x, y;
friend bool operator < (node a, node b)
{
//从大到小排列
if(a.x != b.x)
return a.x < b.x;
else
return a.y < b.y;
}
};
node pos;
map<int , int>row,col;//分别记录行和列
map<node, int>p;//优先级队列如果插入的节点是结构体类型,则要在结构体中重载比较操作符函数
int main()
{
int t;
int n, m, k;
int x, y, c;
int op, xx, yy;
int cas = 0;
scanf("%d",&t);
while(t--)
{
int c1 = 0, c2 = 0;
scanf("%d%d%d",&n,&m,&k);
for(int i = 0; i < k; i++)
{
scanf("%d%d%d",&x, &y, &c);
if(row[x] == 0)//离散化
row[x] = ++c1;
if(col[y] == 0)
col[y] = ++c2;
pos.x = row[x];
pos.y = col[y];
p[pos] = c;
}
int tt, tmp;
printf("Case #%d:\n",++cas);
scanf("%d",&tt);
for(int i = 0; i < tt; i++)
{
scanf("%d%d%d",&op,&xx,&yy);
if(op == 1)
{
tmp = row[xx];
row[xx] = row[yy];
row[yy] = tmp;
}
else if(op == 2)
{
tmp = col[xx];
col[xx] = col[yy];
col[yy] = tmp;
}
else
{
pos.x = row[xx];
pos.y = col[yy];
printf("%d\n",p[pos]);
}
}
}
return 0;
}
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
map<int , map<int , int> >mm;
map<int , int> row,col;//分别记录行和列
int main()
{
int t;
int n, m, k;
int x, y, c;
int op, xx, yy;
int cas = 0;
scanf("%d",&t);
while(t--)
{
int c1 = 0, c2 = 0;
scanf("%d%d%d",&n,&m,&k);
for(int i = 0; i < k; i++)
{
scanf("%d%d%d",&x, &y, &c);
if(row[x] == 0)//离散化
row[x] = ++c1;
if(col[y] == 0)
col[y] = ++c2;
mm[row[x]][col[y]] = c;
}
int tt, tmp;
printf("Case #%d:\n",++cas);
scanf("%d",&tt);
for(int i = 0; i < tt; i++)
{
scanf("%d%d%d",&op,&xx,&yy);
if(op == 1)
{
tmp = row[xx];
row[xx] = row[yy];
row[yy] = tmp;
}
else if(op == 2)
{
tmp = col[xx];
col[xx] = col[yy];
col[yy] = tmp;
}
else
{
printf("%d\n",mm[row[xx]][col[yy]]);
}
}
}
return 0;
}
hdu 4941 Magical Forest(STL map & 结构体运用),布布扣,bubuko.com
hdu 4941 Magical Forest(STL map & 结构体运用)
原文:http://blog.csdn.net/u012860063/article/details/38519917