hdu4941 Magical Forest (stl map)
2014多校7最水的题
| Magical Forest |
Magical ForestTime Limit: 24000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 253 Accepted Submission(s): 120 Problem Description
There is a forest can be seen as N * M grid. In this forest, there is some magical fruits, These fruits can provide a lot of energy, Each fruit has its location(Xi, Yi) and the energy can be provided Ci.
However, the forest will make the following change sometimes: 1. Two rows of forest exchange. 2. Two columns of forest exchange. Fortunately, two rows(columns) can exchange only if both of them contain fruits or none of them contain fruits. Your superior attach importance to these magical fruit, he needs to know this forest information at any time, and you as his best programmer, you need to write a program in order to ask his answers quick every time. Input
The input consists of multiple test cases.
The first line has one integer W. Indicates the case number.(1<=W<=5) For each case, the first line has three integers N, M, K. Indicates that the forest can be seen as maps N rows, M columns, there are K fruits on the map.(1<=N, M<=2*10^9, 0<=K<=10^5) The next K lines, each line has three integers X, Y, C, indicates that there is a fruit with C energy in X row, Y column. (0<=X<=N-1, 0<=Y<=M-1, 1<=C<=1000) The next line has one integer T. (0<=T<=10^5) The next T lines, each line has three integers Q, A, B. If Q = 1 indicates that this is a map of the row switching operation, the A row and B row exchange. If Q = 2 indicates that this is a map of the column switching operation, the A column and B column exchange. If Q = 3 means that it is time to ask your boss for the map, asked about the situation in (A, B). (Ensure that all given A, B are legal. ) Output
For each case, you should output "Case #C:" first, where C indicates the case number and counts from 1.
In each case, for every time the boss asked, output an integer X, if asked point have fruit, then the output is the energy of the fruit, otherwise the output is 0. Sample Input
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 Sample Output
Case #1:
1 2 1 Hint
No two fruits at the same location. Author
UESTC
Source
Recommend
|
题意:给出矩阵的长、宽,各个水果的能量、在矩阵中的位置,接下来有t个操作。操作有3种,一种是交换某两列,一种是交换某两行,一种是输出某坐标的水果的能量。矩阵长宽大得飞起,水果最多10^5个。
题解:STL::map
由于地图大得飞起,肯定不能真的存地图,我们建一个map<pair<int,int> , int>把水果的坐标、能量撸进去。然后还有交换行列操作,可以发现这两个操作是独立的,我们可以建立行和列的序号数组,只交换序号就行。但其实行和列也大得飞起,不能真的每行每列都建序号数组,我们也建两个map来存行和列的序号,用来交换。
水得飞起来,我刚开始还想自己写hash,结果写逗乐,发现时限大得飞起,直接用map就过了…
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define ll long long
#define usint unsigned int
#define mz(array) memset(array, 0, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("1biao.out","w",stdout) const int MOD=; struct fruit{
int r,c,e;
}; int n,m,k;
map<int,int>r,c;
map<pair<int,int>,int>S; int main(){
int T,cas=;
int q,x,y,i,qn;
fruit t;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&n,&m,&k);
r.clear();
c.clear();
S.clear();
for(i=;i<k;i++){
scanf("%d%d%d",&t.r,&t.c,&t.e);
S[make_pair(t.r,t.c)]+=t.e;
r[t.r]=t.r;
c[t.c]=t.c;
}
scanf("%d",&qn);
printf("Case #%d:\n",cas++);
while(qn--){
scanf("%d%d%d",&q,&x,&y);
if(q==)swap(r[x],r[y]);
else if(q==)swap(c[x],c[y]);
else{
printf("%d\n",S[make_pair(r[x],c[y])]);
}
}
}
return ;
}
hdu4941 Magical Forest (stl map)的更多相关文章
- hdu 4941 Magical Forest (map容器)
Magical Forest Time Limit: 24000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- HDU 4941 Magical Forest(map映射+二分查找)杭电多校训练赛第七场1007
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4941 解题报告:给你一个n*m的矩阵,矩阵的一些方格中有水果,每个水果有一个能量值,现在有三种操作,第 ...
- hdu4941 Magical Forest
Problem Description There is a forest can be seen as N * M grid. In this forest, there is some magic ...
- HDU 4585 Shaolin(STL map)
Shaolin Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit cid= ...
- HDU 2112 HDU Today(STL MAP + Djistra)
题目链接:HDU Today 立即集训要開始,抓紧时间练练手,最短路的基础题,第一次用STL的map 题目非常水,可是错了N遍.手贱了.本题不优点理的就是把地名转化为数字 #include <i ...
- HDU——2723Electronic Document Security(STL map嵌套set做法)
Electronic Document Security Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- 2018 ICPC 徐州网络预赛 Features Track (STL map pair)
[传送门]https://nanti.jisuanke.com/t/31458 [题目大意]有N个帧,每帧有K个动作特征,每个特征用一个向量表示(x,y).两个特征相同当且仅当他们在不同的帧中出现且向 ...
- 51nod 1562 玻璃切割 (STL map+一点点的思考)
1562 玻璃切割 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 现在有一块玻璃,是长方形的(w 毫米× h 毫米),现在要 ...
- HDU 4585 Shaolin (STL map)
Shaolin Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Sub ...
随机推荐
- SQLMAP源码分析-目录结构
-----------------------------------------------------------------------------│ README.md│ sqlmap.c ...
- 【poj1177】 Picture
http://poj.org/problem?id=1177 (题目链接) 题意 求矩形周长并. Solution 转自:http://www.cnblogs.com/Booble/archive/2 ...
- 【poj2114】 Boatherds
http://poj.org/problem?id=2114 (题目链接) 题意 给出一棵树,问是否存在两点间的距离为K. Solution 点分治嘛,跟poj1741差不多.. 然而为什么我调了一个 ...
- gulp用途
前端构建工具,可以实现文件合并.文件压缩.语法检查.监听文件变化 参看: http://blog.sina.com.cn/s/blog_6592d8070102vmuq.html https://se ...
- 关于git的学习
Git是目前世界上最先进的分布式版本控制系统(没有之一)! 由于现在用的还不多,还没有这种体会,但是前人的经验是值得借鉴的,所以我认真的学习了一些关于git的简单操作,现在在这分享一些心得,或者说是为 ...
- 帝国备份王(Empirebak) \class\functions.php、\class\combakfun.php GETSHELL vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 EmpireBak是一款完全免费.专门为Mysql大数据的备份与导入而设 ...
- 在CentOS上安装Sublime Text
CentOS 是基于 Red Hat (RHEL) 的, 其中并没有包管理工具 apt. 最近需要在装了 CentOS 系统的服务器上安装Sublime Text, 到官网上看了一下, 对其他 (De ...
- hdu 2031 杨辉三角
题意:显示杨辉三角形. 解法: 组合数学公式:combi(n,m)=combi(n-1,m-1)+combi(n-1,m); 至于为什么有这个公式呢?那就是高中数学的内容啦 1: #include&l ...
- JAVA通过md5方法进行加密
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /* * MD5 算法 * */ ...
- angularjs中ng-selected使用方法
ng-selected只能应用在option标签上,就像ng-submit只能应用在form标签上一样. ng-selected指令为select设置了指定的选中值,HTML规范不允许浏览器保存类似s ...