博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3682 To Be an Dream Architect
阅读量:5827 次
发布时间:2019-06-18

本文共 1494 字,大约阅读时间需要 4 分钟。

题目链接:

题目大意:给一个三维立方体,每次消除一行平行与坐标轴的小立方体(边长1),求一共消除了多少块。

分析:说不上分析了,给每一块小立方体一个标号,方法随便,哈希就可以了,不过不知道为什么我的哈希一直TLE,不知道是写错了还是怎么回事,无奈快排一下写了。

附代码:

#include
#include
#include
#include
#include
using namespace std; int n,m,ans,Case; #define MaxN 1010 int tot; int a[MaxN*MaxN]; void init() {
char ch1,ch2,tch; int t1,t2; tot=0; ans=0; scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) {
scanf("%c%c%c%d%c%c%c%d",&tch,&ch1,&tch,&t1,&tch,&ch2,&tch,&t2); if (ch1=='X' && ch2=='Y') for (int j=1;j<=n;j++) tot++,a[tot]=t1*n*n+t2*n+j; if (ch1=='Y' && ch2=='X') for (int j=1;j<=n;j++) tot++,a[tot]=t2*n*n+t1*n+j; if (ch1=='X' && ch2=='Z') for (int j=1;j<=n;j++) tot++,a[tot]=t1*n*n+j*n+t2; if (ch1=='Z' && ch2=='X') for (int j=1;j<=n;j++) tot++,a[tot]=t2*n*n+j*n+t1; if (ch1=='Y' && ch2=='Z') for (int j=1;j<=n;j++) tot++,a[tot]=j*n*n+t1*n+t2; if (ch1=='Z' && ch2=='Y') for (int j=1;j<=n;j++) tot++,a[tot]=j*n*n+t2*n+t1; } sort(a+1,a+tot+1); for (int i=1;i<=tot;i++) if (a[i]!=a[i-1]) ans++; } int main() {
freopen("in","r",stdin); freopen("out","w",stdout); scanf("%d",&Case); while (Case--) {
init(); printf("%d\n",ans); } return 0; }

转载于:https://www.cnblogs.com/evan-oi/archive/2012/02/28/2372060.html

你可能感兴趣的文章
省赛总结
查看>>
CSS网页实例:适合所有项目通用的reset.css
查看>>
js call
查看>>
Android中的Selector
查看>>
C语言代码片段-读写标准输入流
查看>>
Ios 调用Appstore 下载界面 [[UIApplication sharedApplication] openURL
查看>>
旁观者效应”是如何毁掉我们的代码的
查看>>
vim常用命令 vim键盘布局
查看>>
开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
查看>>
[转]跟我一起学extjs5(02--建立工程项目)
查看>>
Input Technical Information
查看>>
DB系统预警联系人API
查看>>
tomcat java.net.BindException: Cannot assign requested address 解决方法
查看>>
android批量文件上传(android批量图片上传)
查看>>
Android Intent Action大汇总(转载)
查看>>
Servlet中使用RequestDispatcher调派请求--forware
查看>>
文字排版--字号、颜色(font-size, color)
查看>>
C# 读取JSON
查看>>
一分钟教你知道乐观锁和悲观锁的区别
查看>>
Android 退出app,后台推送的服务也停止了,怎么可以做到不停止后台服务呢?
查看>>