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<cstdio>
#include<map>
using namespace std;
map<int, int> mr, mc;
map<int, map<int, int> > mp;
int main()
{
int T, n, m, k, cas = 0;
scanf("%d",&T);
while(T--) {
mr.clear();
mc.clear();
mp.clear();
scanf("%d%d%d",&n,&m,&k);
int a, b, c;
int p = 0, q = 0;
for(int i = 0; i < k; i++) {
scanf("%d%d%d",&a, &b, &c);
if(!mr[a])
mr[a] = ++p;
if(!mc[b])
mc[b] = ++q;
mp[mr[a]][mc[b]] = c;
}
int Q, type;
scanf("%d",&Q);
printf("Case #%d:\n", ++cas);
while(Q--) {
scanf("%d%d%d",&type, &a, &b);
if(type == 1) {
int tmp = mr[a];
mr[a] = mr[b];
mr[b] = tmp;
}
else if(type == 2) {
int tmp = mc[a];
mc[a] = mc[b];
mc[b] = tmp;
}
else {
printf("%d\n", mp[mr[a]][mc[b]]);
}
}
}
return 0;
}#include<cstdio>
#include<map>
using namespace std;
map<int, int> mr, mc;
map<pair<int, int>, int> mp;
int main()
{
int T, n, m, k, cas = 0;
scanf("%d",&T);
while(T--) {
mr.clear();
mc.clear();
mp.clear();
scanf("%d%d%d",&n,&m,&k);
int a, b, c;
int p = 0, q = 0;
for(int i = 0; i < k; i++) {
scanf("%d%d%d",&a, &b, &c);
if(!mr[a])
mr[a] = ++p;
if(!mc[b])
mc[b] = ++q;
mp[make_pair(mr[a], mc[b])] = c;
}
int Q, type;
scanf("%d",&Q);
printf("Case #%d:\n", ++cas);
while(Q--) {
scanf("%d%d%d",&type, &a, &b);
if(type == 1) {
int tmp = mr[a];
mr[a] = mr[b];
mr[b] = tmp;
}
else if(type == 2) {
int tmp = mc[a];
mc[a] = mc[b];
mc[b] = tmp;
}
else {
printf("%d\n", mp[make_pair(mr[a], mc[b])]);
}
}
}
return 0;
}#include<cstdio>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
const int N = 1e5 + 10;
struct node
{
int y;
int c;
} p[N];
vector <node> vr[N];
map<int, int> mp1, mp2;
int n, m, k;
int main()
{
int T, Q;
scanf("%d",&T);
int cnt = 0;
while(T--) {
mp1.clear();
mp2.clear();
memset(vr, 0, sizeof(vr));
printf("Case #%d:\n", ++cnt);
scanf("%d%d%d", &n, &m, &k);
int l = 0, r = 0;
for(int i = 0; i < k; i++) {
int a, b, c;
scanf("%d%d%d",&a,&b,&c);
if(mp1[a] == 0)
mp1[a] = l++;
if(mp2[b] == 0)
mp2[b] = r++;
p[i].y = mp2[b];
p[i].c = c;
vr[mp1[a]].push_back(p[i]);
}
scanf("%d",&Q);
int t, x, y;
while(Q--) {
scanf("%d%d%d",&t, &x, &y);
if(t == 1) {
int a = mp1[x];
int b = mp1[y];
mp1[x] = b;
mp1[y] = a;
}
if(t == 2) {
int a = mp2[x];
int b = mp2[y];
mp2[x] = b;
mp2[y] = a;
}
if(t == 3) {
int a = mp1[x];
int b = mp2[y];
int flag = 0;
for(int i = 0; i < vr[a].size(); i++) {
if(vr[a][i].y == b) {
flag = 1;
printf("%d\n", vr[a][i].c);
break;
}
}
if(!flag)
printf("0\n");
}
}
}
return 0;
}hdu 4941 Magical Forest(STL之map应用)2014多校训练第7场,布布扣,bubuko.com
hdu 4941 Magical Forest(STL之map应用)2014多校训练第7场
原文地址:http://blog.csdn.net/lyhvoyage/article/details/38533545