資源簡介
可自定義皇后數(shù)量,采用爬山法求解,已經(jīng)vs編譯通過,可運(yùn)行
代碼片段和文件信息
#include?
#include?
#include?
#include?
using?namespace?std;
#define?size?2000?
int?board[size];//記錄棋盤狀況的數(shù)組?
//記錄沖突的數(shù)組?
int?ru[size*2];//右上?
int?rd[size*2];//右下?
int?recran[size];?
int?n;?int?rec[size];?
int?f()?
{//計(jì)算沖突的函數(shù)?
int?ir=0;?
memset(ru0sizeof(ru));?
memset(rd0sizeof(rd));?
for(i=0;i {?
ru[board[i]-i+n]++;?
rd[board[i]+i]++;?
}?
for(i=0;i<2*n;i++)?
{?
if(ru[i]>1)?r+=ru[i]-1;?
if(rd[i]>1)?r+=rd[i]-1;?
}?
return?r;?
}?
//生成x個(gè)不重復(fù)的隨機(jī)數(shù),放入board數(shù)組?
void?randgen(int?x)?
{?
int?itemp;?
memset(recran0sizeof(int)*(n+1));?
for(i=0;i {?
do?
{?
temp=rand()%x;?
}?
while(recran[temp]==1);?
評論
共有 條評論