HDU 3682 To Be an Dream Architect:查重【三维坐标系中点在实数上的映射】
题目链接: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:查重【三维坐标系中点在实数上的映射】的更多相关文章
- 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 ...
- 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 ...
- hdu 5652 India and China Origins 并查集
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5652 题目大意:n*m的矩阵上,0为平原,1为山.q个询问,第i个询问给定坐标xi,yi,表示i年后这 ...
- hdu 5458 Stability(树链剖分+并查集)
Stability Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)Total ...
- [HDU 3712] Fiolki (带边权并查集+启发式合并)
[HDU 3712] Fiolki (带边权并查集+启发式合并) 题面 化学家吉丽想要配置一种神奇的药水来拯救世界. 吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[ ...
- 论文 查重 知网 万方 paperpass
相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...
- 如何对excel进行列查重
学习了excel函数:countif.表达式:COUNTIF(数据区域,条件),作用:对数据区域内符合条件单元格计数 具体应用 在“姓名”(列A)后插入一列(列B),在B2单元格输入公式“=IF(CO ...
- 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 ...
- 在PHP项目中使用Standford Moss代码查重系统
Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使 ...
随机推荐
- 使用ReflectionToStringBuilder实现toString方法
使用ReflectionToStringBuilder实现toString方法 org.apache.commons.lang.builder.ReflectionToStringBuilder是co ...
- 安卓巴士android源码、博文精选1
每周精选 第 53 期 精品源码 Android开源项目--CookMan 厨客APP 简介CookMan,厨客,是一款查询.搜索.分类.收藏菜谱功能的APP.|52数据来源Mob A ...
- [图形学] Chp17 OpenGL光照和表面绘制函数
这章学了基本光照模型,物体的显示受到以下效果影响:全局环境光,点光源(环境光漫反射分量,点光源漫反射分量,点光源镜面反射分量),材质系数(漫反射系数,镜面反射系数),自身发光,雾气效果等.其中点光源有 ...
- js模块化/js模块加载器/js模块打包器
之前对这几个概念一直记得很模糊,也无法用自己的语言表达出来,今天看了大神的文章,尝试根据自己的理解总结一下,算是一篇读后感. 大神的文章:http://www.css88.com/archives/7 ...
- Day01_变量,数据类型_程序交互_流程控制
python执行的两种方式: 1,交互的方式: 优点:可以及时调试程序,调试方法 缺点: 无法永久保存代码 2,保存在文件中执行 优点:可以永久保存代码,在执行的时候调用 缺点:不能即时调试代 ...
- 集合用法笔记-Map用法
一.Map遍历 Map<String, String> map = new HashMap<String, String>(); map.put("1", ...
- iOS多线程开发之NSOperation - 快上车,没时间解释了!
一.什么是NSOperation? NSOperation是苹果提供的一套多线程解决方案.实际上NSOperation是基于GCD更高一层的封装,但是比GCD更加的面向对象.代码可读性更高.可控性更强 ...
- mybatis代理类Demo
前言 简单实现通过代理接口来实现对数据的查询demo,也是对mybatis的一个熟练.首先是编写接口代理. public interface IBookMapper { List<BookMod ...
- vue 自定义组件
1.Vue.component('component-test', { props:{}, data:function(){ return{} }, mounted:function(){}, com ...
- jenkins-APP打包页面展示二维码
背景: 客户要求在APP打包页面展示二维码.虽然感觉这个功能很鸡肋,但是还是加上吧. 效果展示: 配置: 在上图中,106对应的内容是BuildName,我们可以通过build-name-setter ...