java植树问题代码_问下面一段C++代码什么意思,关于植树问题的;

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

知道的提问http://zhidao.baidu.com/question/107297331.html

#include

using namespace std;

long total=0;

long tree_j[7][5];

bool chk(long cl,long ci,long cj)

{

long cb[7];

memset(cb,0,sizeof(cb));

for (long bl=1;bl

{

for (long bi=1;bi<=4;bi++)

cb[tree_j[bl][bi]]++;

}

return cb[cj]<4;

}

void print()

{

bool map[7][7];//一个

memset(map,false,sizeof(map));

long oi,oj;

for (oi=1;oi<=6;oi++)

for (oj=1;oj<=4;oj++)

map[oi][tree_j[oi][oj]]=true;

for (oi=1;oi<=6;oi++)

{

for (oj=1;oj<=6;oj++)

cout<

cout <

}

cout <

}

void tryy(long tl,long ti)

{

if (tl>6){

print();

total++;

return;

}

long kl;

for (kl=tree_j[tl][ti-1]+1;kl<=ti+2;kl++)

{

if  (chk(tl,ti,kl))

{

tree_j[tl][ti]=kl;

if (ti<4)

tryy(tl,ti+1);

else

tryy(tl+1,1);

}

}

}

int main()

{

memset(tree_j,0,sizeof(tree_j));

tryy(1,1);

cout<

return 0;

}

题目是:在6*6的方格地盘,种植24棵树,使得每行,每列都有4棵树;

求所有可能种植方案和方案总数。

麻烦给每句都注释一下是什么意思 这是答案 看不懂啊~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值