摘要: 搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。现阶段一般有枚举算法、深度优先搜索、广度优先搜索、A*算法、回溯算法、蒙特卡洛树搜索、散列函数等算法。在大规模实验环境中,通常通过在搜索前,根据条件降低搜索规模;根据问题的约束条件进行剪枝;利用搜索过程中的中间解,避免重复计算这几种方法进行优化。 ——百度百科 阅读全文
posted @ 2017-01-05 10:06 Ukinojs 阅读(525) 评论(0) 推荐(1) 编辑
摘要: 题目大意: 要求你写出一个网络市政系统,用于评定每篇文章的“政治程度”。每篇文章的“政治程度”的含义就是文章中出现了多少个参议员的名字。这里要注意,参议员的名字可能是**交叉**的。 这个系统还需支持三种操作: - 将某个参议员的名字从名单中抹去(不再考虑此议员) - 将某个**已被删除的**议员的名字重新加入名单。 - 输出给定的文章的“政治程度”。 阅读全文
posted @ 2016-12-28 16:40 Ukinojs 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 给你一个目标数独和一个未完成的且只有一种解法的标准数独,允许你对数独进行一下五种操作: 1. 顺时针或逆时针旋转这个数独; 2. 交换一个3*9矩阵内的任意两行; 3. 交换一个9*3矩阵内的任意两列; 4. 交换任意两个row segment或col segment; 5. 对数独内的数字进行置换。 阅读全文
posted @ 2016-12-27 08:37 Ukinojs 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 给出一个无向图,求出这个无向图中所有不同的MST里的公共边。 我的解法: 刚刚拿到这道题的时候我还是思考了好一会儿的,思考的方向大概就是在MST的性质这方面(虽然后来做完之后发现显然我的思路和题目的正解不沾边)。想了一会儿我感觉是时候找个窍门把这道题过掉了,发现数据十分的友好:N<=500 M<=50000。所以说暴力一下就可以了呀。但是…… 阅读全文
posted @ 2016-12-27 08:29 Ukinojs 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一开始拿到这道题的时候我想到的是我曾经做过的一道模拟题中的T3粉刷墙壁,但是当我写出了状态的表示方法:f[i][j]表示最后一个被着色的小球和倒数第二个被着色的小球分别是i和j时的最小花费,状态转移方程:**f[i][j]=min(f[j][k])+c[i] (i-m<=k<=i-1)** 之后。但是本着Think twice, code once的理念,我发现这道题的数据比我当时写过的数据要大很多,直接暴力肯定会T。于是顺理成章地,想到了优化。 阅读全文
posted @ 2016-12-27 08:20 Ukinojs 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 19B 解题思路分析 题目大意: 给出一些商品,每一件商品有两个属性:ti和ci,表示以ci的代价购买了该商品之后,你可以从其他的物品中无偿(不支付代价)地挑选出ti个物品。求能够获得所有商品的最小代价。 思考过程: 看到这道题的时候,我就觉得一边买东西一边送东西,这事儿肯定不对。如果两件事情放在一 阅读全文
posted @ 2016-12-27 08:11 Ukinojs 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给出一个N*M的矩阵,矩阵中每个格点具有可正可负的权值,求出权值最大的联通块的权值和。 思考过程: 从一开始就想的一直是多维dp,因为题中给出的是一个矩阵。但是多维dp又只能求出一条“路径”而不是一个联通块,因此又想到了dp之后再搜索合并“路径”,但是实在没有不TLE的实现方法,于是开始觉得情况不是我想象的这样。 阅读全文
posted @ 2016-12-27 07:55 Ukinojs 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目大意—— 给出一棵树,你需要访问这棵树上的某些结点几次,求出使访问这些结点路线最短的那个点所需要的最短路径长度并列出每一个符合条件的点。 阅读全文
posted @ 2016-12-27 00:41 Ukinojs 阅读(228) 评论(0) 推荐(0) 编辑