2019中山大学程序设计竞赛(重现赛) Clumsy Keke
Problem Description
Keke is currently studying engineering drawing courses, and the teacher has taught her how to find its volume through the three views of the part. But her brain doesn't work well that she can't find the volume of complex parts. So she needs your help.
To simplify the problem, the part is made up of cubes with side length 1, and the vertices of these cubes are all on the grid. Give you three 0/1 matrices, each representing each of the three views. 0 means that there is no projection of cubes at this position of the view; 1 means that there is a projection of cubes at this position of the view.
Now Keke wants you to help her find the volume of the part determined by the three views.
Input
There are mutiple test cases, the number of which is no more than 10. For each test case:
The first line of input contains three integers mx,my,mz(1≤mx,my,mz≤99)
, which represent the coordinate range of all possible cubes (i.e. all possible cubes are in the cuboid area whose body diagonal is from (1,1,1)
to (mx,my,mz)
).
Following input a 0/1 matrix with mx
lines and my
columns representing the front view, and the y
-th column of the x
-th row represents the projection of all the cubes in the front view such as (x,y,?)
.
Following input a 0/1 matrix with my
lines and mz
columns representing the side view, and the z
-th column of the y
-th row represents the projections of all the cubes in the side view such as (?,y,z)
.
Following input a 0/1 matrix with mz
lines and mx
columns representing the top view, and the x
-th column of the z
-th row represents the projection of all the cubes of the top view such as (x,?,z)
.
The '?
' in the above coordinates represents any integer. Numbers in the same line are separated by spaces. For more detailed input information, please see the sample
Output
For each test case:
The first line of output should contain an integer, representing the volume of the part determined by the three views. If the determined part is not unique, find the largest of all possible parts.
Keke's teacher promises that there is at least one part that satisfies the input.
Sample Input
5 6 4
1 1 1 1 1 1
0 0 0 1 0 1
0 0 0 1 0 1
0 0 0 0 0 1
0 0 0 0 0 1
0 1 1 0
1 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
1 1 1 1
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 1 1 1 1
Sample Output
17




解题思路:这道题就是给你三视图,叫你求体积;
(1)首先题给的这个正视图和侧视图不是真实图的正视图和侧视图,所以应该翻转一下;


(2)此时就暴力的枚举每个小块,如果都为1,那么就ans++;这样不会出现重复的情况;
代码如下:
#include<iostream>
#include<stdio.h>
using namespace std; int m , n , k;
int x[][];
int y[][];
int z[][];
int tpx[][];
int tpy[][];
int ans = ;
int main()
{
while(scanf("%d%d%d",&m,&n,&k)!=EOF)
{
ans = ;
for(int i = ; i <= m ; i++)
{
for(int j = ; j <= n ; j++)
{
cin>>x[i][j];
}
}
for(int i = ; i <= n ;i++)
{
for(int j = ;j <= k ;j++)
{
cin>>y[i][j];
}
}
for(int i = ; i <= k ; i ++)
{
for(int j = ; j <= m ;j++)
{
cin>>z[i][j];
}
} for(int i = ; i <= n ; i++)
{
for(int j = ; j <= m ;j++)
{
tpx[i][j] = x[j][n-i+] ; //向左翻转
}
} for(int i = ; i <= n ;i++)
{
for(int j = ;j <= k ;j++)
{
tpy[i][j] = y[n-i+][j]; //上下翻转
}
}
for(int i = ; i <= m ;i++)
{
for(int j = ; j <= n ;j++)
{
for(int l = ; l <= k ;l++)
{
if(tpx[j][i]==&&z[l][i]==&&tpy[j][l]==)
{
ans++;
}
}
}
} cout<<ans<<endl; }
}
2019中山大学程序设计竞赛(重现赛) Clumsy Keke的更多相关文章
- 2019中山大学程序设计竞赛 Triangle
今天水了一发hdu上的中山校赛 这个题交了将近十遍才过...... 就是说给 n 个木棍,如果能找出3个能组成三角形的木棍就输出yes 反之输出no 乍一看很简单 一个排序遍历一遍就好了 但是n值太大 ...
- 2019中山大学程序设计竞赛-Monitor
题目地址 题目大意:给你一个n*m的矩形,在这个矩形内告诉你p个矩形(左下角和右上角坐标),问你q个问题,每次也是给你一个矩形(左下角和右上角坐标),问你每个矩形是否可以被开始给的p个矩形完全覆盖. ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 G - 彩虹岛套娃
题目描述 俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立.颜色有红色,蓝色,绿色,紫色等.最普通的图案是一个穿着俄罗斯民 ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 H - 圣诞节糖果
题目描述 圣诞节临近,彩虹岛的黑心商人
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子
题目描述 作为彩虹岛上最擅长打铁的人,
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 D - 新卡片游戏
题目描述
- 第十四届浙江财经大学程序设计竞赛重现赛--A-A Sad Story
链接:https://www.nowcoder.com/acm/contest/89/A 来源:牛客网 1.题目描述 The Great Wall story of Meng Jiangnv’s Bi ...
- “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities
题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...
- 牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game
链接:https://www.nowcoder.com/acm/contest/125/A来源:牛客网 Tony and Macle are good friends. One day they jo ...
随机推荐
- 浅谈Trigger
- 依赖VUE组件通讯机制实现场景游戏切换
- Opencv3 图片膨胀与腐蚀
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...
- LoadRunner11学习记录四 -- 集合点
LoadRunner集合点的设置: 我们来想象一个场景,10名运动员参加长跑比赛,出发点同时起跑,他们是并排奔跑的:跑了N圈之后,因为有体能更强的,有体能稍弱的,他们的队形并排变成了前后.几乎一个跑道 ...
- LoadRunner11学习记录三 -- 迭代和并发
LoadRunner中%d和%s是什么意思? %d 格式化输出短整形数据,TC环境中占用两个字节,输出整数范围为:32768~32767.Visual C++环境中占用四个字节,输出数据范围为:-21 ...
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
隐式转换(implicit conversion) ; int b; b=a; short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如 ...
- [SoapUI] DataSource, DataSourceLoop, DataSink
Script assertion in login:
- BCompare 4重置试用天数
BCompare安装后有30天试用期,试用结束后,你可以卸载重装,以重新获得30天试用天数. BCompare的使用天数记录保存在注册表中,如果不想每次重装,也可删除对应的注册表值来重置激活天数. 命 ...
- "软掩膜"和“硬掩膜”-智能IC卡
目录 一.“软掩膜”和“硬掩膜”... 2 二.EMV迁移进程... 3 三.PBOC规范和EMV规范对比... 3 四.总结... 5 五.关于SDA和DDA. 6 一.“软掩膜”和“硬掩膜” “软 ...
- 并查集 - 1611 The Suspects
题目地址: http://poj.org/problem?id=1611 分析: - 数据结构 - parent[x] 表示 x 元素的父节点位置. - rank[x] 记录x的子链的长度, 以便在合 ...