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 ...
随机推荐
- AddComponentMenu
[AddComponentMenu] The AddComponentMenu attribute allows you to place a script anywhere in the " ...
- Python 2.7 爬取51job 全国java岗位
一页有50条数据一共2000页 分页是get分页 #!/usr/bin/python # encoding: utf-8 import requests import threading from ...
- 无需写try/catch,也能正常处理异常
对于企业应用的开发者来说,异常处理是一件既简单又复杂的事情.说其简单,是因为相关的编程无外乎try/catch/finally+throw而已:说其复杂,是因为我们往往很难按照我们真正需要的策略来处理 ...
- ORACLE修改表空间方法
一.使用imp/exp.先导出源库,再创建新库把表空间创建好,然后再导入.(据说这样可以,前提是新的库里面不能有与源库相同名字的表空间.有待验证!) 二.使用脚本进行修改.据目前所了解,正长情况下需要 ...
- 为什么丑陋的UI界面却能创造良好的用户体验?
本文内容由Mockplus团队翻译. 官网:http://www.mockplus.cn 网站界面过于漂亮可能会影响网站的可用性,但本文中提到的5个网站界面可谓是“丑”出了新高度.这样的网站它还有可用 ...
- Spring.net init-method destroy-method
<object id="exampleInitObject" type="Examples.ExampleObject" init-method=&quo ...
- 黑盒测试实践-任务进度-Day04
任务进度11-29 使用工具 selenium 小组成员 华同学.郭同学.穆同学.沈同学.覃同学.刘同学 任务进度 经过了前两天的学习任务的安排,以下是大家的任务进度: 华同学(任务1) 1.和其他小 ...
- [转]ubuntu linux下DNS重启后丢失(不是Network-manager造成的情况)
从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf.d/head中加载而来,所以每回改resolv.conf都会失效,在此文件里面已经 ...
- Hadoop-2.4.0分布式安装手册
目录 目录 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 临时修改主机名 3 2.2.2. 永久修改主机名 3 2.3. 免密码登录范围 4 3. 约 ...
- zrender源码分析2--初始化Storage
接上次分析到初始化ZRender的源码,这次关注内容仓库Storage的初始化 入口1:new Storage(); // zrender.js /** * ZRender接口类,对外可用的所有接口都 ...