第07次CCF计算机软件能力认证《游戏》Acwing3230. 游戏题解 具体实现看看forbiden数组,至于为何他的第三维可以设置成500,其实是调出来试一试发现可以通过,如果要严谨的话可选择将它设置成Bool类型,然后第三维设置大点。因为这题有点特殊,它是有些位置在部分时间不可以走,那么就必然会有回头路走,所以要想出一种办法既能剪枝又能符合实际。如果有多种路径在同一时刻可以到达同一个点,那么我们只需。恰好可以与题目中有些点在某一个时段不可走统一起来。,这样可以有效避免重复搜索,而且。
第06次CCF计算机软件能力认证《画图》Acwing3224. 画图题解 4.y1是 cmath 的一个库函数,如果要声明变量名为y1,请勿将其声明为全局变量。2.两条直线相交的位置有可能在后面的操作中还会有多条直线穿过,所以。,而不是在队列中将其拿出来之后在标记。3.输出时应该从y坐标由大到小输出。1.广搜优化,vis数组标记应该在。
第05次CCF计算机软件能力认证《最佳文章》AcWing 3221. 最佳文章题解 构造一颗字典树,并且在维护end数据时做了优化,将节点u的end额外加上了他的fail指向的节点的end,这是利用了字典树fail指向的节点与当前节点的后缀关系,设该节点为u,fail指向的节点为v,则节点0~v表示的字符串一定是0~u的后缀。容易发现,最优解字符串一定只包含字典树上的字母,那么问题可以转换成,有一个小人从0节点出发,一共跳m次,每次只能沿着字典树的边跳,每经过一个节点u,就可收获end[u],求小人的最大收获。故跳m次的最大收获就是将状态转移矩阵进行m次定义的*运算后。
POJ 1270 Following Orders题解 先将所有出现的字母排序,然后从小到大逐个遍历入度为0的字母,并且将与其相连的字母入度减一,然后再次遍历所有字母,只要是未曾访问过的并且入度为0,那么继续从他开始遍历,以此循环。大致题意:给你几个小写字母与他们之间的大小关系,按照字典序从小到大输出所有的可能排序。数据处理部分参考了洛谷用户。思路:DFS+拓扑排序。即求所有的拓扑排列。