新聞中心

        回溯算法1

        作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
        int TuiLi::OK()//根據(jù)約束條件剪枝的剪枝函數(shù)

        {
        int i,j;
        if(
        (Fz[0].ys==Fz[1].ys&&Fz[0].ys!=0)||(Fz[0].ys==Fz[2].ys&&Fz[0].ys!=0)
        ||(Fz[0].ys==Fz[3].ys&&Fz[0].ys!=0)||(Fz[0].ys==Fz[4].ys&&Fz[0].ys!=0)
        ||(Fz[1].ys==Fz[2].ys&&Fz[1].ys!=0)
        ||(Fz[1].ys==Fz[3].ys&&Fz[1].ys!=0)||(Fz[1].ys==Fz[4].ys&&Fz[1].ys!=0)
        ||(Fz[2].ys==Fz[3].ys&&Fz[2].ys!=0)||(Fz[2].ys==Fz[4].ys&&Fz[2].ys!=0)
        ||(Fz[3].ys==Fz[4].ys&&Fz[3].ys!=0)||

        本文引用地址:http://www.104case.com/article/201612/324273.htm


        (Fz[0].gj==Fz[1].gj&&Fz[0].gj!=0)||(Fz[0].gj==Fz[2].gj&&Fz[0].gj!=0)
        ||(Fz[0].gj==Fz[3].gj&&Fz[0].gj!=0)||(Fz[0].gj==Fz[4].gj&&Fz[0].gj!=0)
        ||(Fz[1].gj==Fz[2].gj&&Fz[1].gj!=0)
        ||(Fz[1].gj==Fz[3].gj&&Fz[1].gj!=0)||(Fz[1].gj==Fz[4].gj&&Fz[1].gj!=0)
        ||(Fz[2].gj==Fz[3].gj&&Fz[2].gj!=0)||(Fz[2].gj==Fz[4].gj&&Fz[2].gj!=0)
        ||(Fz[3].gj==Fz[4].gj&&Fz[3].gj!=0)||

        (Fz[0].cw==Fz[1].cw&&Fz[0].cw!=0)||(Fz[0].cw==Fz[2].cw&&Fz[0].cw!=0)
        ||(Fz[0].cw==Fz[3].cw&&Fz[0].cw!=0)||(Fz[0].cw==Fz[4].cw&&Fz[0].cw!=0)
        ||(Fz[1].cw==Fz[2].cw&&Fz[1].cw!=0)
        ||(Fz[1].cw==Fz[3].cw&&Fz[1].cw!=0)||(Fz[1].cw==Fz[4].cw&&Fz[1].cw!=0)
        ||(Fz[2].cw==Fz[3].cw&&Fz[2].cw!=0)||(Fz[2].cw==Fz[4].cw&&Fz[2].cw!=0)
        ||(Fz[3].cw==Fz[4].cw&&Fz[3].cw!=0)||

        (Fz[0].yl==Fz[1].yl&&Fz[0].yl!=0)||(Fz[0].yl==Fz[2].yl&&Fz[0].yl!=0)
        ||(Fz[0].yl==Fz[3].yl&&Fz[0].yl!=0)||(Fz[0].yl==Fz[4].yl&&Fz[0].yl!=0)
        ||(Fz[1].yl==Fz[2].yl&&Fz[1].yl!=0)
        ||(Fz[1].yl==Fz[3].yl&&Fz[1].yl!=0)||(Fz[1].yl==Fz[4].yl&&Fz[1].yl!=0)
        ||(Fz[2].yl==Fz[3].yl&&Fz[2].yl!=0)||(Fz[2].yl==Fz[4].yl&&Fz[2].yl!=0)
        ||(Fz[3].yl==Fz[4].yl&&Fz[3].yl!=0)||

        (Fz[0].yp==Fz[1].yp&&Fz[0].yp!=0)||(Fz[0].yp==Fz[2].yp&&Fz[0].yp!=0)
        ||(Fz[0].yp==Fz[3].yp&&Fz[0].yp!=0)||(Fz[0].yp==Fz[4].yp&&Fz[0].yp!=0)
        ||(Fz[1].yp==Fz[2].yp&&Fz[1].yp!=0)
        ||(Fz[1].yp==Fz[3].yp&&Fz[1].yp!=0)||(Fz[1].yp==Fz[4].yp&&Fz[1].yp!=0)
        ||(Fz[2].yp==Fz[3].yp&&Fz[2].yp!=0)||(Fz[2].yp==Fz[4].yp&&Fz[2].yp!=0)
        ||(Fz[3].yp==Fz[4].yp&&Fz[3].yp!=0)

        ) return 1;


        for(i=0;i<5;i++)
        if(Fz[i].gj==2&&Fz[i].ys!=1&&Fz[i].ys>0) return 1;
        //英國人住紅色房子
        for(i=0;i<5;i++)
        if(Fz[i].gj==5&&Fz[i].cw!=1&&Fz[i].cw>0) return 1;
        //瑞典人養(yǎng)狗
        for(i=0;i<5;i++)
        if(Fz[i].gj==4&&Fz[i].yl!=1&&Fz[i].yl>0) return 1;
        //丹麥人喝茶

        for(i=0;i<5;i++)
        {
        if(Fz[i].ys==5)
        {
        for(j=0;j<5;j++)
        {
        if(Fz[j].ys==3) if(i}
        }
        }
        //綠色房子在白色房子左面

        for(i=0;i<5;i++)
        if(Fz[i].ys==3&&Fz[i].yl!=3&&Fz[i].yl>0) return 1;
        //綠色房子主人喝咖啡

        for(i=0;i<5;i++)
        if(Fz[i].yp==4&&Fz[i].cw!=4&&Fz[i].cw>0) return 1;
        //抽Pall Mall 香煙的人養(yǎng)鳥


        for(i=0;i<5;i++)
        if(Fz[i].ys==2&&Fz[i].yp!=3&&Fz[i].yp>0) return 1;
        //黃色房子主人抽、Dunhill 香煙

        if(Fz[2].yl!=2&&Fz[2].yl!=0) return 1;
        //住在中間房子的人喝牛奶

        if(Fz[0].gj!=1&&Fz[0].gj!=0) return 1;
        //挪威人住第一間房

        for(i=0;i<5;i++)
        {
        if(Fz[i].yp==1){
        if(i==0)if(Fz[1].cw!=2&&Fz[1].cw!=0) return 1;
        if(i==4)if(Fz[3].cw!=2&&Fz[3].cw!=0) return 1;
        if((Fz[i].yp==1)&&((Fz[i-1].cw!=2&&Fz[i-1].cw!=0)&&(Fz[i+1].cw!=2&&Fz[i+1].cw!=0))) return 1;
        }
        }
        //抽Blends香煙的人住在養(yǎng)貓的人隔壁

        for(i=0;i<5;i++)
        {
        if(Fz[i].yp==3){
        if(i==0)if(Fz[1].cw!=5&&Fz[1].cw!=0) return 1;
        if(i==4)if(Fz[3].cw!=5&&Fz[3].cw!=0) return 1;
        if((Fz[i].yp==3)&&((Fz[i-1].cw!=5&&Fz[i-1].cw!=0)&&(Fz[i+1].cw!=5&&Fz[i+1].cw!=0))) return 1;
        }
        }
        //抽Dunhill 香煙的人住養(yǎng)馬的人隔壁

        for(i=0;i<5;i++)
        if(Fz[i].yp==2&&Fz[i].yl!=4&&Fz[i].yl>0) return 1;
        //抽Blue Master的人喝啤酒

        for(i=0;i<5;i++)
        if(Fz[i].yp==5&&Fz[i].gj!=3&&Fz[i].gj>0) return 1;
        //德國人抽Prince香煙


        for(i=0;i<5;i++)
        {
        if(Fz[i].gj==1){
        if(i==0)if(Fz[1].ys!=4&&Fz[1].cw!=0) return 1;
        if(i==4)if(Fz[3].ys!=4&&Fz[3].cw!=0) return 1;
        if((Fz[i].gj==1)&&((Fz[i-1].ys!=4&&Fz[i-1].ys!=0)&&(Fz[i+1].ys!=4&&Fz[i+1].ys!=0))) return 1;
        }
        }
        //挪威人住藍(lán)色房子隔壁


        上一頁 1 2 下一頁

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 延寿县| 青铜峡市| 米脂县| 甘谷县| 府谷县| 公主岭市| 邵东县| 手游| 菏泽市| 乐安县| 莲花县| 卫辉市| 靖州| 民勤县| 谢通门县| 惠水县| 鹤山市| 青州市| 法库县| 石台县| 青河县| 亚东县| 新津县| 白山市| 法库县| 雷山县| 绥芬河市| 宁晋县| 嘉祥县| 图片| 宁波市| 乃东县| 吕梁市| 清镇市| 成安县| 金乡县| 噶尔县| 嘉义市| 阜新| 迭部县| 涿州市|