好的!经过一个晚上的商讨,我们的每日算法挑战要和大家见面了!
如标题所示本期是第0期,就是每日算法挑战的公测。下面放上简介!
1 这是什么?
每日算法挑战本质上不就是拿来热版的花招么
每日算法挑战,顾名思义,就是每天会po一道算法相关的题目,来让大家讨论讨论,做一做。当然了,这个每日算法挑战并不是什么ACM之类的算法题,各位就算交了代码也没有用。因此,大家只要说说算法和思路,最多给出伪代码就可以了。伪代码写得也可以随便一点,但是太过耍赖的“伪代码”也是不行的哦!比如这样的伪代码:
输入本题的所有数据;
解题;
输出结果
这样的伪代码说的就太模糊了,有点耍赖。我们约定除了众所周知的少数算法(如排序)之外,伪代码也要由常数时间内就能做完的动作(或自己定义的过程调用)组成。同样地,对于自定义数据结构也尽可能写的清楚一点为好。
如果觉得伪代码要求太复杂了,其实也不用非得写伪代码,只要能说明白算法的大致实现过程也可以。写得详细的可以拿到和伪代码一样的奖励哦!
2 有奖励吗!
有啊,当然有了!我们欢迎所有形式的讨论,尤其会对这样的贴子发放奖励:
首先给出了正确答案(或者相对本题可以接受的答案)的,可以拿到最多的奖励!
虽然不是首先给出答案,但是有一些新内容的(比如新方法啊,复杂度等等的讨论啊,算法思路的说明啊,以及正确性证明等等);
参与讨论,有一些新颖的见解或者指出了其他人答案的bug的。
顺带一提,三种奖励可以叠加!
今天作为公测,我先放出来一道我随便杜撰的题吧!
第0期 我的世界
K想要在MC里搭一个雕塑。他手头有一个STL文件,里面保存了这个雕塑的样子。
题目中为了简化,认为STL文件由若干三角面组成,每个三角面由九个实数组成,前三个、第4-6个和第7-9个实数分别定义了三角面的三个顶点。可以认为每个STL文件中的各个三角面能围成一个封闭的几何体。
我们规定,对于每个MC中的方块区域,只要三角面穿过了这个区域,就要在那里搭上方块,并且这个雕塑是实心的,即几何体的内部也要填上方块。
K在搭建雕塑之前,首先要知道他要准备多少个方块,来计划挖矿(指给苦力ABCDE等人安排挖矿任务)。现在他想问问你,修雕塑要多少方块呢?
输入
第一行是一个整数n,表示这个STL文件中的三角面个数。
接下来有n行,每行有9个实数,分别表示三角面中的三个顶点,顺序是X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3。
输出
输出一行,其中有一个整数,表示雕塑需要多少方块。
嗯……这个题是我杜撰的,因此没有预设的正确答案,大家可以畅所欲言。