• 大小: 3KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-07-04
  • 语言: C/C++
  • 标签: 算法分析  

资源简介

分治法查找最小值代码,C语言编写,可能需要用input.txt输入,回到原点的骑士游历问题代码。

资源截图

代码片段和文件信息

#include 

int pan[9][9]={0};
int movex[8]={11-1-122-2-2};
int movey[8]={2-22-21-11-1};
int currentxcurrenty;
//int startxstartyyuandianflag=0;
int movedx[100]={0};
int moveway[100]={0};
int fmove[100]={0};
int found=0;

FILE *fp;
int directnumber(int x int y)
{
int icount=0;
for (i=0;i<8;i++)
if ((x+movex[i]>0) && (x+movex[i]<=8) && (y+movey[i]>0) && (y+movey[i]<=8) && !pan[x+movex[i]][y+movey[i]]) count++;
return count;
}

void tryout(int x int y int count)
{
int iii=1jj=1;
int min=9mc=9;
int moved[9]={0};
if (count==32)
{
// printf(“1“);
if ((x==1)&&(y==6)) 
{
// printf(“suc“);
found=1;
for (i=33;i<=64;i++)
{
moveway[i]=(ii-1)*8+jj+32;
ii+=movex[movedx[i-32]];
jj+=movey[movedx[i-32]];// printf(“%d “moveway[i]);
}
for (i=1;i<=32;i++)  moveway[i]=65-moveway[32+i];// printf(“%d “moveway[i]);
// scanf(“%d “&ii);
}
}
else
{
for (i=0;i<8;i++) 
if ((x+movex[i]>0) && (x+movex[i]<=4) && (y+movey[i]>0) && (y+movey[i]<=8) && !pan[x+movex[i]][y+movey[i]]) moved[i]=0; else moved[i]=1;

while (!((moved[0]==1)&&(moved[1]==1)&&(moved[2]==1)&&(moved[3]==1)&&(moved[4]==1)&&(moved[5]==1)&&(moved[6]==1)&&(moved[7]==1)))
{
for (i=0;i<8;i++)
if ((x+movex[i]>0) && (x+movex[i]<=4) && (y+movey[i]>0) && (y+movey[i]<=8) && 

评论

共有 条评论