2016.08.19【初中部 NOIP普及组 】模拟赛题解

来源:互联网 发布:js向下取整 编辑:程序博客网 时间:2024/05/19 00:39

又翻车了。。。


T1

看起来很屌的样子,然而并没有什么卵用。。。


这题要我们求出在一个方格图里,以中心点为圆心画一个半径为r的圆形,求这个圆内覆盖了多少个点。

我们先画一个图:


然后我们可以用勾股定理求解。

例如:


因为R是已知的,所以我们只要枚举X,就可以算出Y的长度(具体自己百度)。

之后我们把Y取整,就可以得到X上方覆盖的点数量。

因为这是一个圆形,所以我们把取整后的Y乘以2再加上1(加上X点),就可以得到第X列的总数。


T2

超水的BFS。。。

不过考试时居然没有满分。。。


直接BFS解决,注意如果起点和终点在同一个格子就直接输出。


T3

直接DFS枚举,先枚举数字顺序,再枚举运算符,最后枚举运算顺序(不用考虑运算符之间的优先级)。

水了过去。。。(不过我调试了半天)


T4

表示这题我是用了某詹的水法水过去的。。。

直接用暴力DFS,之后加上一条优化:

我们记录下输入数据的最小值,如果当前的值加上剩下的空位数乘以最小值还要比当前的答案大,就可以直接退出。

(即把剩下的都当成最小值,可以求出当前情况下的最优解,如果最优解都不能成立,那真正的最优解也肯定不能成立了)


又翻车了。。。

然而还是水。。。


2 0
原创粉丝点击