摘要: bfs+最小树形图+kruskal算法。 最小树形图形象地来说就是有向图的最小生成树,这个不能拿kruskal算法或者是prim算法直接求,否则会错。 就是w[u][v]!=w[v][u]的情况。 而这道题用朱刘算法肯定是行不通的。 但是这道题的有向边并不是边的性质,而是点的高度决定的。这样我们就可以分层求最小生成树。 如果加进高度为h的点,只需用kruskal算法选最短的边就可以了,而... 阅读全文
posted @ 2016-07-02 20:30 invoid 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 矩阵。 一个图的邻接矩阵的m次幂相当于 长度恰好为m的路径数。这要求边权为1。 因为边权小于等于9,所以可以把一个点拆成9的点。 拆成的第(i+1)个点向第i个点连边。 如果存在边(u,v,w) 就由u点向v拆成的第w个点连边,这样表明w次以后就可以到达v点。 这个拆点很牛啊,不过第一眼连邻接矩阵都没看出来。。 #include #include #include using na... 阅读全文
posted @ 2016-07-02 10:38 invoid 阅读(343) 评论(0) 推荐(0) 编辑
摘要: dp. 用f[i][j]表示长度为i,开头数为[1,j]的第一位下降的序列个数。 f[i][j]=f[i][j-1]+f[i-1][i-j]。 f[i-1][i-j]可以表示长度为i-1,开头数为[1,j-1]的第一位上升的序列个数。(各位取反以后,俩者一一对应,所以值相同) 要使用滚动数组。 好像%2和&1性能上没差别。 #include #include #include u... 阅读全文
posted @ 2016-07-02 01:01 invoid 阅读(90) 评论(0) 推荐(0) 编辑