zoukankan      html  css  js  c++  java
  • hdu 4941 Magical Forest ( 双重map )

    题目链接

    题意:

    有一个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)位置的果树的能量值。

    分析:由于n和m很大,而k很小,所以可以用map离散化。每次交换行或者列的时候只需交换map映射的值即可。

    交换的时候只是交换离散以后的代号就行,mp【】【】里面还是原来的。

     

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <map>
     6 #include <algorithm>
     7 #define LL __int64
     8 using namespace std;
     9 
    10 int main()
    11 {
    12     int W, n, m, k, tmp;
    13     int x, y, c, t, q, ca=1;
    14     int cnt_r, cnt_c;
    15     scanf("%d", &W);
    16     while(W--)
    17     {
    18         map<int, int>mr, mc;
    19         map<int, map<int, int> >mp;  //双重map
    20         scanf("%d%d%d", &n, &m, &k);
    21         cnt_r = 1;
    22         cnt_c = 1;
    23         while(k--)
    24         {
    25             scanf("%d%d%d", &x, &y, &c);
    26             if(!mr[x])
    27             mr[x] = cnt_r++;  //离散化
    28             if(!mc[y])
    29             mc[y] = cnt_c++;  //离散化
    30             mp[mr[x]][mc[y]] = c;
    31         }
    32         printf("Case #%d:
    ", ca++);
    33         scanf("%d", &t);
    34         while(t--)
    35         {
    36             scanf("%d%d%d", &q, &x, &y);
    37             if(q==1)  //行交换
    38             {
    39                 tmp = mr[x];
    40                 mr[x] = mr[y];
    41                 mr[y] = tmp;
    42             }
    43             else if(q==2) //列交换
    44             {
    45               tmp = mc[x];
    46               mc[x] = mc[y];
    47               mc[y] = tmp;
    48             }
    49             else
    50                 printf("%d
    ", mp[mr[x]][mc[y]]);
    51         }
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    【Kubernetes】Service 实现探索
    【Kubernetes】浏览器访问服务
    【Kubernetes】访问入口-Service
    oracle 分页查询
    本地cmd命令打war包、解压war包
    xp系统上安装和使用kettle
    VWware15安装windows XP纯净版虚拟机
    JDK8:HashMap源码解析:TreeNode类的balanceInsertion方法
    红黑树
    kettle JVM内存设置-
  • 原文地址:https://www.cnblogs.com/bfshm/p/3911763.html
Copyright © 2011-2022 走看看