摘要: 题意:有n个格子,每个格子里有坦克,坦克有两滴血,你像格子里投掷炸弹,每次命中坦克他掉一滴血并随机像左或者右移动一个格子,问最少炸几次能把全部坦克炸完。 题解:先向偶数格子投掷炸弹,所以的坦克全跑到奇数格子里,然后再向奇数格子里投掷炸弹,消灭掉之前偶数格子里的坦克并且所以的坦克全跑到偶数格子里,再向 阅读全文
posted @ 2017-10-24 20:57 Kearon 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个字符串,问形如a……a/ /b……b/ /a……a的子串最大长度 题解:设三个状态a,ab,aba分别表示对应长度。因为每段长度可以为0,所以后一个状态的包含前一个状态。每次更新最大长度,最终的aba即为答案 阅读全文
posted @ 2017-10-24 20:39 Kearon 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意:问能否在字符串中找到五个名字中的某一个恰好出现一次。能输出YES,不能输出NO 题解:用strstr函数 阅读全文
posted @ 2017-10-24 20:03 Kearon 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一颗树,问你最少添加多少边使其能成为二分图。 题解:首先理解一下二分图 https://en.wikipedia.org/wiki/Bipartite_graph。我们观察树,父亲与儿子肯定属于二分图不同的集合,父亲与儿子的儿子肯定属于同一个集合。而且集合的任意一个元素肯定与另一个集合的每 阅读全文
posted @ 2017-10-19 22:33 Kearon 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 题意:从池塘1-m有n条水渠,求出最大流量 题解:经典最大流问题,使用最短增广路算法Edmonds Karp,每次通过bfs寻找増广路径,最坏时间复杂度为O(n*m^2),n是点数 m是边数。 阅读全文
posted @ 2017-10-15 22:26 Kearon 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个n^2的邻接矩阵,表示u到v的距离,问你要让所以农场通网需要多长网线。 题解:用prim算法,从一个结点开始构造生成树,每次选当前子图和图外结点权值最小的边,把图外结点加入子图中。 prim比kruskal更适合稠密图,未优化的prim时间复杂的为O(u^2),kruskal时间复杂的 阅读全文
posted @ 2017-10-15 00:07 Kearon 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个n,m,t.n代表有多少个点,m代表有多少个双向的边,t代表的是虫洞,现在要你判读是否还可以穿越到过去的点. 思路:判断是否存在负权环即可,套用Bellman ford模板就行 学到spfa的时候有想起来这道题了,本来spfa就是Bellman ford的队列优化版本,于是再用spfa 阅读全文
posted @ 2017-10-10 23:00 Kearon 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题意:中文题→ _→ 注意a,b 之间可能有多条路,一发wa就是因为没注意到 题解:没什么好说的,就是裸的最短路,dijkstra搞定 阅读全文
posted @ 2017-10-08 23:11 Kearon 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题意:假设a和b是相连的,当前在a处,如果a到终点的距离大于b到终点的距离,则可以从a通往b处,问满足这种的条件的路径条数。 开始看成了求最短路有多少条,wa了一发 题解:从2开始跑dijkstra,然后记忆化搜索 阅读全文
posted @ 2017-10-08 22:42 Kearon 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题意:从1到n去点一条边,最坏的情况下的最短路是多少 题解:先跑一遍最短路,记录途径的每条路,然后再遍历去点最短路中的每条路,再继续跑最短路(因为不是关键路径的路去掉了对最短路没影响)。 代码: 阅读全文
posted @ 2017-10-08 19:29 Kearon 阅读(182) 评论(0) 推荐(0) 编辑