上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 30 下一页
摘要: 这题的题意说的是找到一个m,m的值就是n的倍数,并且m仅由1和0组成。这题的话,我们用广搜,搜索还是很快的,我们让1入队列,每次向下分支的时候,我们就让这个队列头的数乘10,或者乘10+1就行了,因为我们最开始只让1入了队列。这题就相当于是在寻找仅由1、0组... 阅读全文
posted @ 2019-01-23 17:08 xyee 阅读(128) 评论(0) 推荐(0)
摘要: 这一题的话,我们搜索的时候,边界条件就是棋子... 阅读全文
posted @ 2019-01-23 16:17 xyee 阅读(78) 评论(0) 推荐(0)
摘要: 这一题的话,我们搜索的时候,边界条件就是棋子的数目等于k,这时候方案数加一然后return。 如果超过行号的最大值,我们也返回,不过不做任何操作,这也是一个边界条件。 如果 r 行的 j 个位置是棋盘并且这一列没有放入棋子,我们就放入一颗棋子,该列标记为1,已放棋子数加一,然后访问下一行。 这个递归 阅读全文
posted @ 2019-01-23 16:17 xyee 阅读(143) 评论(0) 推荐(0)
摘要: 这题的话,我们,定义一个结构体,然后把木棒从大到小排序。这些木棒如果是由多根等长木棒组成的,那目标长度一定大于等于其中最长的木棒长度,所这就是我们搜索的下限。上限就是所有的木棒组成了一根木棒,就是所有木棒长度的总和,确定了搜索范围之后,我们再来确定搜索的边界... 阅读全文
posted @ 2019-01-23 11:36 xyee 阅读(161) 评论(0) 推荐(0)
摘要: Bellman-Ford算法是一个时间复杂度很高,但是它可以用来判断负环负环就是上面的图,那个环的整体值小于零了,所以就是负环。我们用Bellman-Ford算法进行更新,打一个表出来:k a b c s00 10 1 -2 20 1 ... 阅读全文
posted @ 2019-01-21 16:33 xyee 阅读(154) 评论(0) 推荐(0)
摘要: 这题的话就是单源最短路的问题,不过题目中加入了两个不同的权值,一个是高优先级的路径长度,一个是低优先级的花费。我们在读入的时候,按照高优先级为先的顺序进行修改,如果某点到另一点的路径长度更短,那我们就修改它的长度和花销。如果长度相同并且花销更小,我们就可以修... 阅读全文
posted @ 2019-01-21 10:06 xyee 阅读(167) 评论(0) 推荐(0)
摘要: 这题应该算是最简单的最短路了,没什么好说的。#include #include using namespace std;const int INF = 1 d[k]+w[k][j]) d[j] = d[k] + w[k][j];... 阅读全文
posted @ 2019-01-20 17:02 xyee 阅读(156) 评论(0) 推荐(0)
摘要: 这题的话,坑点挺多的,我也WA了好几次。首先,对于map,因为是多次使用,所以每次处理完一个图之后就要清空。其次,就是对于DIjkstra跑图的时候,如果这个图是连通图的话,我们每次选取最小值点是一定可以选到的,但是对于不连通的图,如果任何一个点都不与终点连... 阅读全文
posted @ 2019-01-20 16:19 xyee 阅读(153) 评论(0) 推荐(0)
摘要: 这题没什么要注意的,只要建模没问题,代码其实OK的。这题原点和终点是固定的,也就省了设置变量了。这题的模型是无向带权的图,我们建立双向的边就可以啦。#include #include const int INF = 1 d[x]+w[x][j]) { ... 阅读全文
posted @ 2019-01-20 09:27 xyee 阅读(160) 评论(0) 推荐(0)
摘要: 这题的题意就是,如果在k层,该数的序号为k,则在k层上只能去k+a[k]层或者k-a[k],这样的话,就变成了一个单向联通图,对这个Dijkstra算法就可以了。#include #include const int INF=1w[x][i]+d[x]) ... 阅读全文
posted @ 2019-01-19 18:18 xyee 阅读(231) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 30 下一页