資源簡介
可自定義皇后數量,采用爬山法求解,已經vs編譯通過,可運行
代碼片段和文件信息
#include?
#include?
#include?
#include?
using?namespace?std;
#define?size?2000?
int?board[size];//記錄棋盤狀況的數組?
//記錄沖突的數組?
int?ru[size*2];//右上?
int?rd[size*2];//右下?
int?recran[size];?
int?n;?int?rec[size];?
int?f()?
{//計算沖突的函數?
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個不重復的隨機數,放入board數組?
void?randgen(int?x)?
{?
int?itemp;?
memset(recran0sizeof(int)*(n+1));?
for(i=0;i {?
do?
{?
temp=rand()%x;?
}?
while(recran[temp]==1);?
- 上一篇:c語言井字棋源碼
- 下一篇:編譯原理firstselectfollow實驗源代碼
評論
共有 條評論