摘要: link 迭代加深。顺便说一句UVA的评测速度比想象中快一点。 还是一样的,首先考虑限制序列长度(观察样例感觉最后的答案应该是log级别的,枚举是可以枚举的),也就是迭代加深部分。另一部分就是估价函数,其实这里甚至不需要一个函数来进行。由于序列递增,所以每个元素不可能比它前面的元素的两倍更大,所以当 阅读全文
posted @ 2022-07-05 16:56 Feyn618 阅读(21) 评论(0) 推荐(0) 编辑
摘要: link 和八数码难题是一样的,反正都是把一些棋子挪来挪去。这道题对估价函数有更高的依赖性,不开会只有20分(8个TLE),开了就能跑到100ms。好玄学啊。 #include<bits/stdc++.h> //#define feyn using namespace std; inline voi 阅读全文
posted @ 2022-07-05 16:23 Feyn618 阅读(10) 评论(0) 推荐(0) 编辑
摘要: link 一种名为A*的搜索方法。 A星是为了解决那些搜索树很宽很深、但答案比较浅的搜索问题。A星的核心有两个,一个是迭代加深,这一步是为了使得搜索树变浅(埃及分数那道题用了);另一个是估价函数,这是为了修剪那些不可能通向正确答案的状态,使搜索树变窄。这样一来,又窄又矮的搜索树自然跑得就快了。 迭代 阅读全文
posted @ 2022-07-05 16:21 Feyn618 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 在做这道题的时候了解到一个结论,即最小生成树一定是所有生成树的最大边最小的。可以用克鲁斯卡的算法过程来理解,即假如第k小的边被加入最小生成树中,那么前k-1条边肯定无法构成生成树,也就是说不存在一棵生成树使得所有边都比第k条边小。所以最小生成树跑出来的最大边肯定就是答案。 阅读全文
posted @ 2022-07-05 14:57 Feyn618 阅读(16) 评论(0) 推荐(0) 编辑
摘要: link 搜索题。 我真的不想写搜索啊,这玩意复杂度没法证,能拿多少分得看数据和评测机,而且没有固定思路,就像某些埋头堆硬件的厂家,写起来只有那么难受了。 关于这道题。有一个显而易见的贪心,最后锯出来的木条一定是最小的那些,因为长木条可以锯出来,短木条一定可以,转换方案之后肯定是不劣的。然后就考虑二 阅读全文
posted @ 2022-07-05 14:25 Feyn618 阅读(23) 评论(0) 推荐(0) 编辑
摘要: link 不难,挺基础的dp。考场上纠结能不能选用空子矩阵,然后纠结着纠结着有些东西就飘了,导致第一个sub里手抖死掉了。70分,好冤啊。 就很简单,考虑到给定的矩阵列数只有1或2。1的情况随便怎么动规都可以,2的情况要额外维护最后一行的状态方便转移(共5个状态),注意f的初值即可。但它似乎没卡空矩 阅读全文
posted @ 2022-07-05 14:18 Feyn618 阅读(12) 评论(0) 推荐(0) 编辑
摘要: link 并不难的构造题。 实在不行可以观察数据。某一列的数字对应下来是会有规律的,都是从0到n-1,再从n-1到0,循环往复,只不过每一位的循环节长度不一样。这也很好理解,因为每一个数和前一个数只会有一个数字不一样,所以它肯定是这样的变化形式。然后输出就可以了。考场上debug了整整半个小时。维生 阅读全文
posted @ 2022-07-05 14:10 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑