zoukankan      html  css  js  c++  java
  • HDU 4941 Magical Forest

    题意:

      10^8*10^8个点图上,有一些点及其点值,会进行一些换行换列操作。

      查询其新图上某点值。

    思路:

      用map存当前行/列指向原图的哪行/列

      map<pair>存原来图上点值

    学到map储存二维的用法。倒是一个方便所在。

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <utility>
    #include <stack>
    #include <queue>
    #include <map>
    #include <deque>
    #define max(x,y) ((x)>(y)?(x):(y))
    #define min(x,y) ((x)<(y)?(x):(y))
    
    using namespace std;
    
    map<pair<int,int>,int> mapp;
    map<int,int> xx;//lie x
    map<int,int> yy;//hang y
    
    int tt,t,n,m,k,x,y,c,q,a,b;
    int main()
    {
        scanf("%d",&tt);
        for(int j=1; j<=tt; j++)
        {
            xx.clear();
            yy.clear();
            mapp.clear();
            printf("Case #%d:
    ",j);
            scanf("%d%d%d",&n,&m,&k);
            for(int i=1; i<=k; i++)
            {
                scanf("%d%d%d",&x,&y,&c);
                xx[x]=x;
                yy[y]=y;
                mapp[make_pair(x,y)]=c;
            }
            scanf("%d",&t);
            while(t--)
            {
                scanf("%d%d%d",&q,&a,&b);
                switch(q){
                    case 1: 
                            if(xx.find(a)!=xx.end() && xx.find(b)!=xx.end())
                            {
                                int tmp=xx[a]; xx[a]=xx[b]; xx[b]=tmp;
                            }
                        break;
                    case 2:
                            if(yy.find(a)!=yy.end() && yy.find(b)!=yy.end())
                            {
                                int tmp=yy[a]; yy[a]=yy[b]; yy[b]=tmp;
                            }
                        break;
                    case 3:
                        printf("%d
    ",mapp[make_pair(xx[a],yy[b])]);
                        break;
                }
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    CV大牛/实验室主页
    mendeley使用技巧
    卷积理解与思考
    CMake构建OpenGL项目
    信号与系统学习(2)-跃阶信号
    信号与系统学习(1)-正弦信号和指数信号
    txt转换为mat
    matlab取整函数
    三维观察流水线的理解
    C#中文和UNICODE字符转换方法
  • 原文地址:https://www.cnblogs.com/Mathics/p/3909084.html
Copyright © 2011-2022 走看看