1.地着色问题C/C++
2.北京故宫网页代码_用html+css+js+div设计的中国网页(网页制作与设计源码)
地着色问题C/C++
从一个省开始,给它涂上任意一种颜色1,色源色股司遍历它旁边的码中省份,涂上与已经涂色并于他相邻的国源股集省份不同的颜色就行了。
理论上4种颜色就够了.地图的份国四色问题嘛!
可能会有多组解。用递归(dfs)就可以输出所有解了。际控list 源码
地图着色算法C语言源代码
前面我写了一个地图着色(即四色原理)的中国C源代码。
写完以后想了一下,色源色股司感觉还不完善,码中因为从实际操作的国源股集角度来考虑,四种可用的份国颜色放在旁边,不同的际控人可能会有不同的选择顺序,另外,中国不同的色源色股司人可能会选择不同的城市作为着色的起点,而当时的码中动漫导航源码程序没有考虑这个问题。于是,把程序修改为下面的样子,还请同行分析并指出代码中的不足之处:
#i nclude <stdio.h>
#define N
int allcolor[4];/*可用的颜色*/
int ok(int metro[N][N],int r_color[N],int current)
{ /*ok函数和下面的go函数和原来的一样,保留用来比较两种算法*/
int j;
for(j=1;j<current;j++)
if(metro[current][j]==1&&r_color[j]==r_color[current])
return 0;
return 1;
}
void go(int metro[N][N],int r_color[N],int sum,int current)
{
int i;
if(current<=sum)
for(i=1;i<=4;i++)
{
r_color[current]=i;
if(ok(metro,r_color,current))
{
go(metro,r_color,sum,current+1);
return;
}
}
}
void color(int metro[N][N],int r_color[N],int sum,int start)
{
int i,j,k;
r_color[start]=allcolor[0];
for(i=start+1;i!=start;i=(i+1)%(sum+1))/*把所有编号看作一个环*/
if(i==0)/*城市号从1开始编号,故跳过0编号*/
continue;
else
for(j=0;j<4;j++)
{
r_color[i]=allcolor[j];/*选取下一种颜色,根据allcolor中颜色顺序不同,结果不同*/
for(k=1;k<i;k++)/*检查是否有冲突,感觉还可以改进,如使用禁忌搜索法*/
if(metro[i][k]==1&&r_color[k]==r_color[i])
break;
if(k>=i)
break;
}
}
void main()
{
int r_color[N]={ 0};
int t_color[N]={ 0};
int i;
int start;/*着色的起点*/
int metro[N][N]={ { 0},
{ 0,1,1,1,1,1,1},
{ 0,1,1,1,1},
{ 0,1,1,1,0,0,1},
{ 0,1,1,0,1,1},
{ 0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1},
{ 0,1,0,1,0,1,1,1,1,1},
{ 0,0,0,0,0,0,1,1,1},
{ 0,0,0,0,0,0,1,1,1,1,0,0,1},
{ 0,0,0,0,0,1,1,0,1,1,0,0,1,1,1,0,1},
{ 0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1},
{ 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1},
{ 0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1},
{ 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1},
{ 0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1},
{ 0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1},
{ 0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1},
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1},
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},
{ 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1},
{ 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1}};
allcolor[0]=1;allcolor[1]=2;allcolor[2]=3;allcolor[3]=4;/*选色顺序,顺序不同,openwrt 软件源码结果不同*/
start=1;
/* clrscr();*/
printf("\nAll color is:\n");
for(i=0;i<4;i++)/*当前选色顺序*/
printf("%d ",allcolor[i]);
go(metro,r_color,,1);
printf("\nFirst method:\n");
for(i=1;i<=;i++)
printf("%3d",r_color[i]);
color(metro,t_color,,start);
printf("\nSecond method:\n");
printf("\nAnd the start metro is:%d\n",start);
for(i=1;i<=;i++)
printf("%3d",t_color[i]);
}
说是人性化着色,其实还有一个问题没有考虑,那就是操作员跳跃式着色,就像大家玩“扫雷”游戏一样。其实也容易实现,可以像定义选色顺序一样定义着色顺序。
北京故宫网页代码_用html+css+js+div设计的虚拟宝库源码网页(网页制作与设计源码)
北京故宫的网页设计以其独特的风格和丰富的内容,为访问者提供了深入了解故宫文化的平台。以下是对北京故宫网页设计的详细分析:
一、设计风格与色彩搭配 北京故宫的官方网站采用了极具中国特色的设计风格。整个网站的色彩搭配以红色和金色为主,这种色彩搭配不仅体现了故宫博物院的文化底蕴,也符合中国人的审美观念。红色和金色在中国文化中象征着吉祥、javaset源码分析富贵和皇家气派,与故宫的形象高度契合。
二、页面布局与结构 故宫博物院的官方网站在页面布局上采用了清晰、简洁的设计。网站的首页通常包括导航栏、搜索框、主要内容和页脚等部分,方便用户快速找到所需信息。同时,网站还采用了响应式设计,能够自适应不同设备的屏幕尺寸,提供良好的用户体验。
三、内容丰富性与互动性 故宫博物院的官方网站在内容上非常丰富。除了提供关于故宫博物院的详细介绍、文物和历史资料外,还设有虚拟参观、在线问答等互动功能。这些功能让观众能够更深入地了解故宫博物院的文化内涵,并增强了观众的参与感和互动性。此外,网站还定期更新展览信息、活动预告等内容,保持网站的时效性和吸引力。
故宫博物院官方网站的设计与内容,旨在提供一个全面、深入的故宫文化体验平台,无论是对于文化爱好者还是普通游客,都能在这里找到自己感兴趣的内容,并获得丰富的知识和体验。