2013年4月10日

ZOJ 1084 贪心 给顶点染色,相邻顶点不能染同样的颜色 算法有问题不能保证是最优解但能A

摘要: 贴代码:View Code 1 #include <cstdio> 2 #include <cstring> 3 #define MAXN 30 4 int n; 5 bool edge[MAXN][MAXN]; 6 int color() 7 { 8 int vet[MAXN]; 9 int c[MAXN];10 int i,j;11 memset(vet,0xff,sizeof(vet));12 for( i=0; i<n; ++i)13 {14 memset(c,0,sizeof(c));15 for( j... 阅读全文

posted @ 2013-04-10 23:27 allh123 阅读(241) 评论(0) 推荐(0) 编辑

Zoj 1119 POJ 1523 SPF 求关节点及删除关节点会出现多少个连通分量 Tarjan算法

摘要: 有最朴素的想法就是依次删除每个点,看剩下的图有多少个连通分量,如果只有一个,不是关节点(也叫割点),否则是关节点。这种算法的复杂度是O(n^3).这里的Tarjan算法的复杂度只有O(n^2),在连通图中只做一次DFS,根据DFS时遍历结点的先后顺序,依次给每个结点编号,这个编号叫该点的深度值,存在数组dfn[]中求每个点的low[]值,low值是这样求的,每个点的low值最初就是该点的深度值。然后看该点的邻接点,如果该点的邻接点被访问过了,low值就是min(low[自己],dfn[邻接点])。如果未被访问过,父结点的 low值=min(low[自己],low[子结点]),如果出现子结点的l 阅读全文

posted @ 2013-04-10 19:17 allh123 阅读(212) 评论(0) 推荐(0) 编辑

导航