资源简介
可自定义皇后数量,采用爬山法求解,已经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实验源代码
评论
共有 条评论