2018级新生周赛(四)题解

本次所有题目的数据都很弱,不需要考虑时间和内存。在本题解中,笔者尽量使用更易理解的写法。第一题:将公元时间和公元前时间转化为正整数和负整数进行比较即可。值得注意的是,公元的第一年是公元1年,即0001AD与0001BC之间的时间差是一年而不是1-(-1)=2,故需要将公元纪年全部减少一年或者将公元前的年份全部增加一年。参考代码:https://paste.ubuntu.com/p/gMsNsFxS7t/第二题:根据题意,如果只有3个,雷顿拿一个,对手可以拿两个;雷顿拿两个,对手可以拿一个。同理,只要是3的倍数,对手按照这个思路抓取硬币,则一定可以获胜;反之,如果不是3的倍数,雷顿就一定可以通过拿取一个硬币或者两个硬币来使剩余的硬币变成3的倍数。参考代码:https://paste.ubuntu.com/p/HJZywczDfy/第三题:这是一道典型的bfs题,不过在这道题中数据很弱,可以采用更简单的办法来思考。先理解这一句话:对于一个能走通的迷宫来说,只要一直摸着一边的墙壁向前走,就一定能抵达终点。那么放在这道题中,如果摸着一面墙一直走都无法到达终点,说明迷宫走不通。参考代码:https://paste.ubuntu.com/p/xsrT8TxjCP/ 第四题:不难发现每种甜点的“性价比”是一样的,这个问题就可以转化成“在钱足够的情况下花最多的钱”,直接暴力一遍就可以得到结果。参考代码:https://paste.ubuntu.com/p/TtXM4fpzFy/第五题:直接定义一个10*10的二维数组并置零,将其中需要画线的位置改为1,再逐个显示即可。参考代码:https://paste.ubuntu.com/p/Jdm3f2WszF/第六题:逐个数字判断次序即可。关于斐波那契数列的有关内容可以咨询百度。参考代码:https://paste.ubuntu.com/p/y9g6YQ4j38/

posted @ 2022-10-22 18:45  河南工业大学算法协会  阅读(3)  评论(0编辑  收藏  举报