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的更多相关文章

  1. 2019中山大学程序设计竞赛 Triangle

    今天水了一发hdu上的中山校赛 这个题交了将近十遍才过...... 就是说给 n 个木棍,如果能找出3个能组成三角形的木棍就输出yes 反之输出no 乍一看很简单 一个排序遍历一遍就好了 但是n值太大 ...

  2. 2019中山大学程序设计竞赛-Monitor

    题目地址 题目大意:给你一个n*m的矩形,在这个矩形内告诉你p个矩形(左下角和右上角坐标),问你q个问题,每次也是给你一个矩形(左下角和右上角坐标),问你每个矩形是否可以被开始给的p个矩形完全覆盖. ...

  3. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 G - 彩虹岛套娃

    题目描述 俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立.颜色有红色,蓝色,绿色,紫色等.最普通的图案是一个穿着俄罗斯民 ...

  4. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 H - 圣诞节糖果

    题目描述 圣诞节临近,彩虹岛的黑心商人

  5. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子

    题目描述 作为彩虹岛上最擅长打铁的人,

  6. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 D - 新卡片游戏

    题目描述

  7. 第十四届浙江财经大学程序设计竞赛重现赛--A-A Sad Story

    链接:https://www.nowcoder.com/acm/contest/89/A 来源:牛客网 1.题目描述 The Great Wall story of Meng Jiangnv’s Bi ...

  8. “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities

    题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...

  9. 牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game

    链接:https://www.nowcoder.com/acm/contest/125/A来源:牛客网 Tony and Macle are good friends. One day they jo ...

随机推荐

  1. 03.什么是Lucene全文检索的原理01

    全文检索的原理:查询速度快,精准度高,可以根据相关度进行排序.它的原理是:先把内容分词,分词之后建索引. Lucene是apache下的一个开放源代码的全文检索引擎工具包. 提供了完整的查询引擎和索引 ...

  2. 详细探究Spark的shuffle实现

    Background 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环 节,shuffle的性能高低直接影响 ...

  3. C++ 重载操作符- 02 重载输入输出操作符

    重载输入输出操作符 本篇博客主要介绍两个操作符重载.一个是 <<(输出操作符).一个是 >> (输入操作符) 现在就使用实例来学习:如何重载输入和输出操作符. #include ...

  4. Redis学习(3)——认识配置文件redis.conf[转]

    #是否作为守护进程运行  daemonize yes  #配置 pid 的存放路径及文件名,默认为当前路径下  pidfile redis.pid  #Redis 默认监听端口  port 6379  ...

  5. Luogu 4726 【模板】多项式指数函数

    补补补…… 这个题的解法让我认识到了泰勒展开的美妙之处. 泰勒展开 泰勒展开就是用一个多项式型的函数去逼近一个难以准确描述的函数. 有公式 $$f(x)\approx g(x) = g(x_0) + ...

  6. java技术文章集

    RunOOB Java 教程 深入理解Java 8 Lambda spring MVC配置详解 各种参数传递示例代码 关于spring配置文件中ref属性的设定 Spring注解Annotation的 ...

  7. Go语言内存分配机制

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  8. Webstorm 10.0.4 配置

    1. 更换为sublime text的keymaps: https://github.com/ekaragodin/idea-sublime-keymap  (idea-sublime-keymap- ...

  9. 【转】C++中#if #ifdef 的作用

    一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件 编译”.有时,希望当满足某条件时对一组语句进行编译,而当 ...

  10. [GO]timer的应用

    package main import ( "time" "fmt" ) func main() { //创建一个定时器,设置时间为2s,2s后,往time.C ...