HDU 3682 水模拟
来源:互联网 发布:哈尔滨哪里有mac专柜 编辑:程序博客网 时间:2024/04/30 01:11
n*n*n的图形,m条线,每条线上的方格被删除,问一共删除了多少个方格
ans=m*n ,然后判断一下直线相交的交点,去重即可
#include "stdio.h"#include "string.h"int xy[1010][1010],xz[1010][1010],yz[1010][1010],hash[1010];struct node{ int x,y,z;} mark[1010];int main(){ int Case,n,m,i,j,cnt,a,b,ans,sum; char ch1,ch2; scanf("%d",&Case); while (Case--) { scanf("%d%d",&n,&m); if (m==0) { printf("0\n"); continue; } memset(xy,0,sizeof(xy)); memset(xz,0,sizeof(xz)); memset(yz,0,sizeof(yz)); cnt=0; while (m--) // 去重边 { getchar(); scanf("%c=%d,%c=%d",&ch1,&a,&ch2,&b); if (ch1=='X' && ch2=='Y' && xy[a][b]==0) { mark[cnt].x=a; mark[cnt].y=b; mark[cnt++].z=-1; xy[a][b]=1; } if (ch1=='Y' && ch2=='X' && xy[b][a]==0) { mark[cnt].x=b; mark[cnt].y=a; mark[cnt++].z=-1; xy[b][a]=1; } if (ch1=='X' && ch2=='Z' && xz[a][b]==0) { mark[cnt].x=a; mark[cnt].z=b; mark[cnt++].y=-1; xz[a][b]=1; } if (ch1=='Z' && ch2=='X' && xz[b][a]==0) { mark[cnt].x=b; mark[cnt].z=a; mark[cnt++].y=-1; xz[b][a]=1; } if (ch1=='Y' && ch2=='Z' && yz[a][b]==0) { mark[cnt].y=a; mark[cnt].z=b; mark[cnt++].x=-1; yz[a][b]=1; } if (ch1=='Z' && ch2=='Y' && yz[b][a]==0) { mark[cnt].y=b; mark[cnt].z=a; mark[cnt++].x=-1; yz[b][a]=1; } } ans=n; for (i=1; i<cnt; i++) //去重点 { memset(hash,0,sizeof(hash)); sum=n; for (j=0; j<i; j++) { if (mark[i].x==mark[j].x && mark[i].x!=-1) { if (mark[i].y==-1 && mark[j].y!=-1) { if (hash[mark[j].y]==0) sum--; hash[mark[j].y]=1; } if (mark[i].z==-1 && mark[j].z!=-1) { if (hash[mark[j].z]==0) sum--; hash[mark[j].z]=1; } } if (mark[i].y==mark[j].y && mark[i].y!=-1) { if (mark[i].x==-1 && mark[j].x!=-1) { if (hash[mark[j].x]==0) sum--; hash[mark[j].x]=1; } if (mark[i].z==-1 && mark[j].z!=-1) { if (hash[mark[j].z]==0) sum--; hash[mark[j].z]=1; } } if (mark[i].z==mark[j].z && mark[i].z!=-1) { if (mark[i].x==-1 && mark[j].x!=-1) { if (hash[mark[j].x]==0) sum--; hash[mark[j].x]=1; } if (mark[i].y==-1 && mark[j].y!=-1) { if (hash[mark[j].y]==0) sum--; hash[mark[j].y]=1; } } } ans+=sum; } printf("%d\n",ans); } return 0;}
1 0
- HDU 3682 水模拟
- hdu 4561 水模拟
- HDU 5373 (模拟 水~)
- HDU 3682--模拟&去重
- HDU 1228 模拟水题
- hdu 5003 模拟水题
- hdu 4891 模拟水题
- hdu 1027 水+模拟排列
- hdu 4452 Running Rabbits(模拟水题)
- HDU 4121 Xiangqi 模拟题(水
- HDU-5835 Danganronpa(模拟水题)
- 【几何模拟】hdu 3286
- hdu 1020 Encoding(模拟)
- hdu 1303 Doubles(模拟)
- hdu 4020 模拟
- HDU **** 暴力模拟
- HDU 4068 模拟
- HDU 4121 模拟
- 计算机领域经典书籍推荐
- Cocos2dx v3.2骨骼动画加载学习
- 《世界上最远的距离》
- tomcat 调用 glassfish4 中 EJB 必备jar包
- Android 调试打印信息的方法
- HDU 3682 水模拟
- Python学习笔记——内置函数
- H264 帧边界识别简介
- RGB转换成Lab具体算法
- libevent源码深度剖析三
- 输入的那些函数
- MySQL数据库导入导出
- Effective C++ 读书笔记 条款06:若不想使用编译器自动生成的函数,就该明确拒绝
- Android Makefile 文件讲解