1.八皇后 题解:遍历顺序为从左往右,到一行最后一个值时从下一行第一个按照上述顺序继续,在“摆出”可行的位置后按照题目要求判断是否符合题意(每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子),符合提议的就算作一个解,先输出前三个解,之后计算出的可行的解时只需将储存解数的值+1即可,在遍历至最后一格结束后输出。 2.电梯 题解:首先满足dfs的要求是当前楼层数能下降且上升后不超过最大楼层数,且不论是上升还是下降算作一次操作,对起始楼层分别进行向上和向下搜索,当同时不满足任意一个条件时(此时x=0),输出遍历后得出的操作数。 3.临时抱佛脚 题解:总耗时为4个科目的单科耗时相加,对于一个科目,首先计算出所有题目的时间之和,之后,找到总耗时最大且不超过时间之和的一半的组合,将时间之和减去组合耗时所得的结果,即为这个科目的耗时,其他科目重复上述过程即可。 4.马的遍历 题解:首先根据棋子可能的移动方式设立移动数组(dx和dy),之后设置广度优先搜索函数,从起始位点以此对之后的位点判断是否能到达,将次数最少的具体数保存于对应该位点位置的数组(a数组)。 5.迷宫 题解: 1.避开障碍物(标记为障碍物的点不能去)。 2.判断下一步走的位置。 3.判断是否到达终点,并记作一次。 6.染色 题解:首先定义图形大小的数(n)和移动数组(dx和dy),之后设置深度优先搜索函数,首先应当判断改位点是否符合继续搜索的条件,在对一个位点的判断结束后,如是(染色),则将a数组中对应该位置的数改为1,对所有位点的判断结束后,按照位点的情况(染色还是不染色)依次输出。 7.水坑 题解:所有相连的W算作一个水坑,那就对每一个格子进行遍历,当遇到一个W时,再对其周围八个格子进行判断,重复上述过程(DFS),直到确定周围所有相连的W(确定过的W就变成 . 一面干扰下次的遍历),并记作一个水坑,判断到最后一个格子时结束并输出结果。 8.酸苦度 题解:酸度和为乘积,苦度和为相加之和,则先单独计算酸度和苦度,每进行一次配料加入的计算时,就判断其绝对差是否比加入前大,若大,则跳过此类酱料,继续下一种配料的计算,最后保留绝对差最小的情况。 9.自然数的拆分问题 题解:对于一个需要拆分的数,先从1开始,当第一轮拆完后,接着从拆剩下的数(输入的数减去拆分出的)重复上述过程,当拆的只剩0时,开始输出 10.单词方阵 题解:首先,单词开头的字母是y,那就把这个当做一个判定条件,若在遍历的过程中发现了y,那就开始对其周围的字母进行搜索(字母y后面跟的是i,i后面跟着n),并一个接一个对着单词里的字母进行搜索,最后输出。