【天津万源码头工程】【php 大马源码】【开心支付源码】涂色本 源码_纯涂色脚本

2024-11-30 00:36:57 来源:openarkcompiler源码分析 分类:时尚

1.地着色问题C/C++

涂色本 源码_纯涂色脚本

地着色问题C/C++

       从一个省开始,涂色涂色给它涂上任意一种颜色1,本源遍历它旁边的码纯省份,涂上与已经涂色并于他相邻的脚本天津万源码头工程省份不同的颜色就行了。

       理论上4种颜色就够了.地图的涂色涂色四色问题嘛!

       可能会有多组解。用递归(dfs)就可以输出所有解了。本源php 大马源码

       地图着色算法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;/*选色顺序,顺序不同,结果不同*/

        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]);

       }

        说是人性化着色,其实还有一个问题没有考虑,那就是操作员跳跃式着色,就像大家玩“扫雷”游戏一样。其实也容易实现,可以像定义选色顺序一样定义着色顺序。

更多资讯请点击:时尚

热门资讯

thinkphp 论坛源码_thinkphp论坛源码

2024-11-30 00:022440人浏览

hbuilder app 源码

2024-11-29 23:502598人浏览

java源码 书店

2024-11-29 22:502173人浏览

linuxdrm源码分析

2024-11-29 22:461499人浏览

app实例源码_app的源码

2024-11-29 22:1994人浏览

推荐资讯

scrapy源码组件

1.Scrapy对接Selenium2.python安装scrapy,所需要安装的包都安装好了,但是在最后安装scrapy时,老是出现错误3.Scrapy—redis动态变化redis_keyScra

delphi程序源码_delphi源码下载

1.有delphi的源码怎么编译出来?知道的说下,谢谢。。。2.Delphi源代码分析简介3.如何用delphi察看程序代码有delphi的源码怎么编译出来?知道的

变色macd源码_变色macd指标源码

1.怎样修改公式把文华财经MACD红绿柱变粗?2.智能macd买卖指标公式源码3.通达信周期共振MACD指标公式源码副图4.通达信macd指标源码5.抄底指标公式源码怎样修改公式把文华财经MACD红绿