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.
#include"stdio.h"
#include"map"
#include"string"
#include"algorithm"
#include"iostream"
using namespace std;
struct node{ //定义结构体
int x,y;
bool operator<(const node &a)const
{
if(x==a.x)
return y<a.y;
return x<a.x;
}
};
int main()
{
map<int,int>x,y; //两个int类型元素的映射
map<node ,int>g; //结构体和int元素的映射
node e;
int T,n,m,k,i,j,t,cnt=0;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&k);
int x1,y1;
x1=y1=0;
while(k--)
{
scanf("%d%d%d",&i,&j,&t);
if(x[i]==0)
x[i]=++x1; //把数组原来的i行j列,对应为x1行y1列;
if(y[j]==0)
y[j]=++y1;
e.x=x[i];
e.y=y[j];
g[e]=t; //结构体e对应的int元素为t
}
scanf("%d",&k);
printf("Case #%d:\n",++cnt);
while(k--)
{
int q;
scanf("%d%d%d",&q,&i,&j);
if(q==1)
{
int t=x[i];
x[i]=x[j];
x[j]=t;
}
else if(q==2)
{
int t=y[i];
y[i]=y[j];
y[j]=t;
}
else
{
e.x=x[i];
e.y=y[j];
printf("%d\n",g[e]);
}
}
}
return 0;
}
hdu 4941 Magical Forest (map容器),布布扣,bubuko.com
hdu 4941 Magical Forest (map容器)
原文:http://blog.csdn.net/u011721440/article/details/38519447