随笔分类 -  搜索

摘要:"题目链接" 【题解】 回溯法搞一下。 用set和数组下标判重。 【代码】 阅读全文
posted @ 2019-11-13 10:55 AWCXV 阅读(132) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 你可以最多交换k次数字。 让你组成一个最大的和一个最小的数字。 【题解】 直接写个bfs.求出所有状态的最小交换次数。 但是最大值和最小值分开写。 做最大值的时候。 假设要交换x[i],x[j] (ix[j]才交换。 加上这个优化就能过了。 直接输出最小 阅读全文
posted @ 2018-08-07 10:26 AWCXV 阅读(436) 评论(0) 推荐(1) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话。 肯定是因为某个2x2的单张方形里面。 只有一个角是墙。其他角都是空的正方形。 举一些例子。 可以看到这个连通块不是长方形。 就是因为有 和 如果我们把这 阅读全文
posted @ 2018-02-08 16:01 AWCXV 阅读(97) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 可以想见最后深度不会很深吧。。 然后皇后之间互相攻击到是允许的。。 就这样 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several s 阅读全文
posted @ 2018-01-02 15:19 AWCXV 阅读(266) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 枚举最大层数。(也即改变的数字个数 然后枚举第一个改哪个数字,第二个改哪个数字。。 一定要注意字典序问题。 每次优先改成较小的字典序(也即顺序枚举 然后注意这个字符不改的情况。 不要算改变数。 最后改完之后。 只 阅读全文
posted @ 2018-01-01 12:00 AWCXV 阅读(303) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 枚举最大量maxdep 在dfs里面传剩余的要凑的分子、分母 以及上一次枚举的值是多少。 然后找到最小的k,满足1/k剪枝就是剩余的全都用这个最大的分数。如果都不行就肯定不行了。 二分找这个k. 不能用的数字就直 阅读全文
posted @ 2017-12-31 22:08 AWCXV 阅读(186) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先预处理出来一个正方形。 然后每次枚举新加的正方形左上角的坐标就可以。 注意覆盖的规则,控制一下就可以。 然后暴力判断是否相同。 暴力回溯即可(只用回溯一个正方形区域) 【代码】 cpp / 1.Shoud it use lon 阅读全文
posted @ 2017-12-31 17:28 AWCXV 阅读(154) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一定在这里写完思路再敲代码!!! 处理出5个工作单元在哪些时刻会被用到。 设为initstatu 因为每次都会面临之前已经用了一段程序,而现在要走下一步的情况 但有一些地方是肯定已经不能走了的。 我们可以预处理出来哪些地方是可以 阅读全文
posted @ 2017-12-26 17:14 AWCXV 阅读(179) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二进制枚举要解开哪些环。 把所有和它相关的边都删掉。 对于剩下的联通分量。 看看是不是每一个联通分量都是一条链 每个点的度数都不大于2 不是环。 同时剩余的联通分量的个数x 解开的环的个数y y =x 1才行 满足以上条件即可 阅读全文
posted @ 2017-12-26 13:41 AWCXV 阅读(162) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每次搜素要往下还是要往右摆。 然后维护一下让每个下标只出现一次就可以了。 = 作为剪枝条件 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several s 阅读全文
posted @ 2017-12-25 18:53 AWCXV 阅读(190) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 暴力枚举每次走哪里就好。 用一个二维数组来判重。(数据里,要求不能经过一个点两次 但路径可以相交 然后再用一个flag数组,来判断这个点能不能走。 【代码】 cpp / 1.Shoud it use long long ? 2. 阅读全文
posted @ 2017-12-21 11:26 AWCXV 阅读(187) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 预处理一下终点能到达哪些点。 暴力就好。 输出结果的时候,数字之间一个空格。。 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several sample( 阅读全文
posted @ 2017-12-19 17:27 AWCXV 阅读(210) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先预处理出所有的正方形(长度为1,2...n的)所包含哪些边。 然后记录每个正方形的应有边长和实际边长(有些边被删掉了); 然后搜的时候,每次找到第一个还是完整的正方形。 枚举删掉它的哪一条边。 然后看看哪些正方形会受到影响。 阅读全文
posted @ 2017-12-19 16:16 AWCXV 阅读(228) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 借鉴网上的题解的。 思路是。 用"标准化"的思想。 确定基准点(0,0) 然后假设(0,0)是第一个连通块。 然后通过大小为1的连通块(0,0)得到所有大小为2的连通块。 然后得到所有大小为3的连通块。。 以此类推 这样可以避免 阅读全文
posted @ 2017-12-16 17:47 AWCXV 阅读(192) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 每次抽动操作最多只会让中间那一块的区域离目标的“距离”减少1. 以这个作为剪枝。 枚举最大深度。 就能过了。 【代码】 cpp include include include include include us 阅读全文
posted @ 2017-12-14 11:01 AWCXV 阅读(150) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜。 很容易想到,最多只要搜8层就可以得到答案了 最多8下肯定可以还原。 则枚举一下最大层数。然后做个深搜就好。 优化。 设0..n每个数字的后继不为a[i]+1的个数为cnt 则每次操作显然最多只能减少3个cnt.. 阅读全文
posted @ 2017-12-11 16:01 AWCXV 阅读(173) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 秤砣都是在叶子节点。 可以把它看成一个二叉树。 则我们每次只需要选择任意两个"节点",让他们组成一棵二叉树就可以了。 然后虚拟出来一个节点,代表这个子树的根节点。 每次维护一下每个子树的左子树最左端离树的中心距离以及最右端离树的 阅读全文
posted @ 2017-12-06 20:19 AWCXV 阅读(257) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每次枚举增加一个字符; 然后看看新生成的字符的后缀里面有没有出现连续子串就好,前面已经确认过的没必要重复确认 (枚举长度为偶数的一个后缀就好) 是输出完第64组且保证有第65组才要输出一个换行. 【代码】 阅读全文
posted @ 2017-12-05 13:35 AWCXV 阅读(141) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 预处理出所有的答案。 打表输出。 【代码】 阅读全文
posted @ 2017-12-05 12:29 AWCXV 阅读(136) 评论(0) 推荐(0) 编辑
摘要:Time Limit: 10 secondMemory Limit: 2 MB问题描述设r={r1,r2,...,rn}是要进行排列的n个元素,其中r1,r2,...,rn可能相同。给定 n以及待排列的n个元素,设计一个算法,求出这n个元素的所有不同排列。Input第一行是元素个数n,1≤n≤500... 阅读全文
posted @ 2017-10-06 19:23 AWCXV 阅读(453) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示