2012年9月27日
摘要: 题目:运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如color[i]=1,表示i区域的颜色为1号颜色。#include <stdio.h> static int curcolor=0;int pickaunic(int map[6][6],int color[6],int i){ for (int j=0;j<6;j++) { if (map[i][j]==1 && (curcolor%4) == color[j]) //如果区域i和区域j相邻并且 阅读全文
posted @ 2012-09-27 22:42 暗夜的雪 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 题目:有N个节点,每两个节点相邻,每个节点只与2个节点相邻,因此,N个顶点有N-1条边。每一条边上都有权值wi,定义节点i到节点i+1的边为wi。求:不相邻的权值和最大的边的集合。思路:典型的分治算法,使用递归方式来逐步缩小问题范围,最终找到返回条件:如果当前位置没有下一个相隔位置(为倒数第1个或倒数第2个位置),那么就返回当前位置的值。如果存在下一个相隔位置,那么缩小问题规模,把当前位置的值和合法位置的值逐个相加,在合法位置集合中找到和当前位置值相加后最大的值返回。代码:#include <stdio.h>int perm(int list[], int k, int m) { 阅读全文
posted @ 2012-09-27 14:15 暗夜的雪 阅读(515) 评论(2) 推荐(0) 编辑