随笔分类 -  ACM

摘要:"题目链接" 题意 在一个两层迷宫内,骑士从起点是否能在给定步数之内找到公主,' '代表传送门,会传送到另一个平面该位置去,' '代表墙,'P'代表公主 解题思路 水题,用bfs模拟即可,就是有个坑 传送门被传到的位置不能是墙(由题意)和传送门(会造成无限传送) AC代码 c++ include i 阅读全文
posted @ 2018-10-18 16:21 django_lf 阅读(133) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给定N个DNA字符串,找到最短的字符串使N个字符串都是它的子序列(不连续) 解题思路 又是典型的IDA 迭代加深搜索思路,用一个数组保存每次搜索到对于N个字符串的下标,当每个下标都到了字符串的结尾的时候即说明解出了答案。 为防止超时,当此时深度+至少还要加深的深度 限制值时就返回 阅读全文
posted @ 2018-10-16 17:01 django_lf 阅读(221) 评论(0) 推荐(0)
摘要:"题目链接" 题意 f[0] = 1,f[1] = 2 f[k] = f[i] + f[j] (0 include include include include include include include include include include using namespace std; 阅读全文
posted @ 2018-10-16 12:35 django_lf 阅读(138) 评论(0) 推荐(0)
摘要:"题目链接" 题意 八数码问题,不过目标状态不定,保证有解 解题思路 和上一题类似,先算一下目标状态在跑IDA 即可,剪枝条件与上一题相同 "参考" AC代码 c++ include include include include include include include include in 阅读全文
posted @ 2018-10-14 15:52 django_lf 阅读(206) 评论(0) 推荐(0)
摘要:"题目链接" 题意 经典的八数码的题目,还要判断是否有解,wiki "链接" 解题思路 用IDA 算法来解决,先算出当前状态和目标状态的哈曼顿距离,当距离为0时即解出答案。 有两个可以剪枝的条件: 下一个方向和当前的方向不能相反 当前的步数加上当前的哈曼顿距离不能大于初始状态的哈曼顿距离 关于8数码 阅读全文
posted @ 2018-10-14 15:51 django_lf 阅读(422) 评论(0) 推荐(0)
摘要:"题目链接" 题意 解出N个9x9的数独,(输出一个解即可) 解题思路 用一个二维布尔数组来标记,点(x,y)的行,列,块的数字是否已经出现过,然后直接暴力搜索即可 AC代码 c++ include include include include include include include in 阅读全文
posted @ 2018-10-09 22:58 django_lf 阅读(266) 评论(0) 推荐(0)
摘要:"题目链接" 题意 A要从(0,0)到(m,n),A有体力值D,每秒都会消耗体力值1,有K座炮塔,每座炮塔都会发射子弹,给出炮塔射击的方向,并且具有一个射击周期,和子弹的速度。 当且仅当子弹在整数坐标(时间以1秒为最小单位)是才能击中A 炮塔会挡住子弹 人可以站着不动 当终点有炮塔的时候不能到达 求 阅读全文
posted @ 2018-10-09 20:48 django_lf 阅读(153) 评论(0) 推荐(0)
摘要:"题目链接" 题意 N个城市M条路径,给定起点A,终点B,求有几条从A到B的最短路(其中每经过的路径不能重复) 解题思路 先用最短路求出A到B的最短路Min,也求出A到每个城市的距离dis[N],然后反向求B到A的最短路,得到B到每个城市的最短距离dis2[N],然后遍历每条路径edge,如果dis 阅读全文
posted @ 2018-10-04 11:47 django_lf 阅读(127) 评论(0) 推荐(0)
摘要:题意 T组样例,N个地点,每个地点有个繁忙度,地点间有M条街道,每条街道要收过路费(目的地繁忙度 起点繁忙度)^3 (3次方),有Q个查询,包含Q个目的地,求从起点1到每个目的地的最小花费。如果花费小于3或者无法到达目的地,则输出"?" 解题思路 由于目的地繁忙度不一定大于起点繁忙度,所以图中有负环 阅读全文
posted @ 2018-10-03 11:34 django_lf 阅读(185) 评论(0) 推荐(0)
摘要:题意 额,直接看题目吧,反正也是中文题,不好用几句话表述清楚~~~ "题目链接" 解题思路 因为等级差距不能间接交易,所以每个交易的等级都在一个区间内,这个区间必须包含大祭司的等级,可以把区间枚举,设大祭司等级为L,则需要从[L M,L],一直枚举到[L,L+M],保证所有交易的点的等级都在这个区间 阅读全文
posted @ 2018-10-02 11:50 django_lf 阅读(118) 评论(0) 推荐(0)
摘要:题意 n个点m条边,判断最小生成树是否唯一 解题思路 求出次小生成树和最小生成树大小是否相同即可 AC代码 C++ include include include include include include include include include using namespace std; 阅读全文
posted @ 2018-10-01 18:41 django_lf 阅读(100) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给互相平行的直线L1,L2,和N个圆,角色在直线上、圆上、园内行走不消耗体力。在其他位置上由S点走到T点消耗的体力为S和T的欧几里得距离。求最少需要多少体力。 解题思路 这题和poj2502那题很相似,关键在建图,这里考察了圆到圆的最短距离和线到圆的最短距离,一开始写的代码以为圆 阅读全文
posted @ 2018-10-01 17:01 django_lf 阅读(302) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给起点和终点的坐标,然后给出多条地铁每一站的坐标,每站地铁只能到相邻的地铁站,地铁的速度是40km/h,人行走的速度是10km/h,求起点到终点的最小时间(给出的坐标单位是m,最后求的时间单位是分钟) 解题思路 这题关键点在与建图,把图建好后跑dijkstra就很简单了,之前一直 阅读全文
posted @ 2018-10-01 10:52 django_lf 阅读(178) 评论(0) 推荐(0)
摘要:题意 给n种货币,m条货币之前的汇率,判断最后能否从中套利 解题思路 典型的判定负环图的问题,题目给的货币字符串,用map来给不同的字符串一个映射就可以了 AC代码 c++ include include include include include include include include 阅读全文
posted @ 2018-09-30 12:19 django_lf 阅读(181) 评论(0) 推荐(0)
摘要:题意 给定一个下三角矩阵,询问从1开始到其他点的最短路径中,最长的那个是多少?(其中x代表没路径) 解题思路 水题,dijkstra即可AC,唯一不同的是多一个字符串处理 AC代码 c++ include include include include include include include 阅读全文
posted @ 2018-09-30 11:45 django_lf 阅读(121) 评论(0) 推荐(0)
摘要:"题目链接" 题意 有N个城市M条路径,可以使K条路径长度变为0,求1到N最短路 解题思路 求最短路很好求,但是题目多了一个限制条件,可以使K条路径长度变为0,这就有点麻烦了,后来想到,这也有点像01背包选与不选的感觉,求最短路的时候加个状态就可以求解了 代码 c++ include using n 阅读全文
posted @ 2018-09-29 16:36 django_lf 阅读(188) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给n个字符串,每个字符串是一个环(就是说起点任意),求n个字符串的最长公共子序列(LCS) 解题思路 比赛的时候刚看到这个题目要求n个字符串的lcs,并且没个字符串可以起点不一样,就是说字符串s都有s.length个不同的排列,求所有n个s里s.length个lcs,时限只有1s 阅读全文
posted @ 2018-09-28 10:56 django_lf 阅读(378) 评论(2) 推荐(0)
摘要:一直想找个时间整理一下自己常用的模板,方便自己查找。 图论还有很多算法,后期待完善。 最小生成树 kruskal "hdu1233" 也可以用贪心的方法,先定义一个数组,排序后并查集。 二分图 二分图判断(交叉染色) "leetcode 886" 阅读全文
posted @ 2018-09-28 10:30 django_lf 阅读(189) 评论(0) 推荐(0)
摘要:题意 起点1到终点n有m条桥,每座桥都有允许最大的重量通过,现在求运输车能从1到n运输的最大重量是多少 解题思路 相当于让选择的那条路最大,然后求这条路里的最小值,而且这个值比其他路的值都大。 可用变形的dijkstra来求解,也可以用最大生成树来求解。 dijkstra解法 阅读全文
posted @ 2018-09-28 10:07 django_lf 阅读(612) 评论(0) 推荐(0)