题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3682

题意:

  有一个n*n*n的立方体,左下角坐标为(1,1,1),接下来进行m次操作。

  每个操作形如这样:"axis_1=a,axis_2=b".

  例如:"x=3,y=1",意思是消去所有x=3,y=1的方块。

  RT:

  

  

题解:

  问题的唯一矛盾在于:一个位置的方块可能被多次消去。

  所以。。。

  (1)由于每一个坐标(x,y,z)在实数中有唯一映射:x*n*n+y*n+z,为了节省空间,将坐标化为整数。

  (2)每操作一次,枚举消去的方块,将坐标对应的整数添加到数组中。

  (3)所有操作完成后,对数组排序。

  (4)然后扫一遍,统计不同整数的个数,即为答案。

  Tips:用set居然会MLE。。。

AC Code:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX_N 1000005 using namespace std; int n,m,t;
int cnt;
int ans;
int arr[MAX_N]; int main()
{
cin>>t;
for(int cas=;cas<=t;cas++)
{
cin>>n>>m;
cnt=;
ans=;
for(int i=;i<m;i++)
{
int a,b;
char c1,c2;
cin>>c1;
getchar();
cin>>a;
getchar();
cin>>c2;
getchar();
cin>>b;
if(c1>c2)
{
swap(a,b);
swap(c1,c2);
}
if(c1=='X' && c2=='Y')
{
for(int c=;c<=n;c++)
{
arr[cnt++]=a*n*n+b*n+c;
}
}
else if(c1=='X' && c2=='Z')
{
for(int c=;c<=n;c++)
{
arr[cnt++]=a*n*n+c*n+b;
}
}
else
{
for(int c=;c<=n;c++)
{
arr[cnt++]=c*n*n+a*n+b;
}
}
}
sort(arr,arr+cnt);
arr[cnt]=-;
for(int i=;i<cnt;i++)
{
if(arr[i]!=arr[i+]) ans++;
}
cout<<ans<<endl;
}
}

HDU 3682 To Be an Dream Architect:查重【三维坐标系中点在实数上的映射】的更多相关文章

  1. hdu 3682 10 杭州 现场 C - To Be an Dream Architect 简单容斥 难度:1

    C - To Be an Dream Architect Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d &a ...

  2. hdu 3682 10 杭州 现场 C To Be an Dream Architect 容斥 难度:0

    C - To Be an Dream Architect Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d &a ...

  3. hdu 5652 India and China Origins 并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5652 题目大意:n*m的矩阵上,0为平原,1为山.q个询问,第i个询问给定坐标xi,yi,表示i年后这 ...

  4. hdu 5458 Stability(树链剖分+并查集)

    Stability Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Total ...

  5. [HDU 3712] Fiolki (带边权并查集+启发式合并)

    [HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界. 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[ ...

  6. 论文 查重 知网 万方 paperpass

    相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...

  7. 如何对excel进行列查重

    学习了excel函数:countif.表达式:COUNTIF(数据区域,条件),作用:对数据区域内符合条件单元格计数 具体应用 在“姓名”(列A)后插入一列(列B),在B2单元格输入公式“=IF(CO ...

  8. POJ 3274 Gold Balanced Lineup 哈希,查重 难度:3

    Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to narrow ...

  9. 在PHP项目中使用Standford Moss代码查重系统

    Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使 ...

随机推荐

  1. Mathematica学习笔记1

    非常喜欢Mathematica的"自动草稿纸"的理念,Magic Paper, 唔哈~ Mathematica的矩阵操作和Matlab的风格十分不同. [ ] 是一个Part运算符 ...

  2. php生成Excel表格

    //引用新建对象<br>require "../phpexcel/Classes/PHPExcel.php"; $excel = new PHPExcel(); 建表格 ...

  3. spring简单笔记

    1.普通注入 1)构造器注入 <constructor-arg name="id" value="100" /> #直接赋值 <constru ...

  4. CodeM美团点评编程大赛复赛 做题感悟&题解

    [T1] [简要题意]   长度为N的括号序列,随机确定括号的方向:对于一个已确定的序列,每次消除相邻的左右括号(右左不行),消除后可以进一步合并和消除直到不能消为止.求剩下的括号的期望.\(N \l ...

  5. vijos1010题解

    题目: 话说乾隆带着他的宰相刘罗锅和你出巡江南,被杭州城府邀请去听戏,至于什么戏,那就不知了.乾隆很高兴,撒酒与君臣共享.三更欲回住处,可是乾隆这人挺怪,他首先要到西湖边散散步,而且命令不准有人跟着他 ...

  6. (cljs/run-at (JSVM. :all) "细说函数")

    前言  作为一门函数式编程语言,深入了解函数的定义和使用自然是十分重要的事情,下面我们一起来学习吧! 3种基础定义方法 defn 定义语法 (defn name [params*] exprs*) 示 ...

  7. JavaScript一个拖动元素的实例

    <script type="text/javascript" src="./whenReady.js"></script> <bo ...

  8. Java编程思想总结笔记Chapter 2

    本章介绍Java程序的基本组成部分,体会到Java中几乎一切都是对象. 第二章   一切都是对象 目录: 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.3 永远不需要销毁对象 2.4 创建 ...

  9. Hihocoder 1325 平衡树·Treap(平衡树,Treap)

    Hihocoder 1325 平衡树·Treap(平衡树,Treap) Description 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二叉 ...

  10. kail的aircrack-ng 移到linux系统,Ubuntu等系统

    系统: debian (理论上基于debian的操作系统都可以, 如ubuntu, lubuntu, 等等) # apt-get install gcc make rt3070驱动安装: # apt- ...