题目链接: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