C/C++ code#include

char *name[] = {"农夫","狼","羊","菜"};

char *name1[] = {"去对岸","回本岸"};

struct way

{

int num;//农夫带走的东西 包括他自己

bool go_back;//带到那里去0表示去对岸 1表示会本岸

};

bool now[4] = {0};//当前状态0表示在本岸1表示在对岸

bool foot[2][2][2][2] = {0};//状态标记表

bool Kill(bool a,bool b,bool c,bool d)//判断是否会吃掉

{

if((c == b && a != c) || (d == c && a != c))

return true;

return false;

}

bool dfs(way w[],int sumway,bool now[])

{

if(4 == now[0]+now[1]+now[2]+now[3])//如果都在对岸

{

for(int i = 0;i

printf("农夫带着%s%s\n",name[w[i].num],name1[w[i].go_back]);

printf("\n\n");

return true;

}

int i;

if(0 == now[0])//如果农夫在本岸

{

for(i = 0;i<4;i++)//遍历他所能带走的东西(包括带走他自己)

{

if(0 == now[i])

{

now[0] = now[i] = 1;//试探

if(!foot[now[0]][now[1]][now[2]][now[3]])//判断

{

if(!Kill(now[0],now[1],now[2],now[3]))

{

foot[now[0]][now[1]][now[2]][now[3]] = true;//试探

w[sumway].num = i; w[sumway++].go_back = 0;//记录路径

dfs(w,sumway,now);//继续搜索

foot[now[0]][now[1]][now[2]][now[3]] = false;//回溯

sumway--;

}

}

now[0] = now[i] = 0;//回溯

}

}

return false;

}

else //如果农夫在对岸 下面注释同上

{

for(i = 0;i<4;i++)

{

if(1 == now[i])

{

now[0] = now[i] = 0;

if(!foot[now[0]][now[1]][now[2]][now[3]])

{

if(!Kill(now[0],now[1],now[2],now[3]))

{

foot[now[0]][now[1]][now[2]][now[3]] = true;

w[sumway].num = i; w[sumway++].go_back = 1;

if(dfs(w,sumway,now))

return true;

foot[now[0]][now[1]][now[2]][now[3]] = false;

sumway--;

}

}

now[0] = now[i] = 1;

}

}

return false;

}

}

int main()

{

way w[100] = {0};

dfs(w,0,now);

return 0;

}

------解决方案--------------------

action_init();

要放在 createG(); 前

这样矩阵就有内容了

C语言编程过河问题,求解:过河有关问题相关推荐

  1. c语言编程人狼羊菜过河,基于visual Studio2013解决C语言竞赛题之1079狼羊过河

        题目 解决代码及点评 /************************************************************************/ /* ...

  2. 一元二次方程通解方程c语言编程,一元二次方程求解程序完整代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面的代码是我刚才无聊写的.对于简单的一元多次方程的迭代 #include #include #include #define MAXTIMES 5 ty ...

  3. 夫妻过河 c语言程序,终稿求解夫妻过河问题.doc最终版(范文1)

    <求解夫妻过河问题.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)求解夫妻过河问题.doc(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库 ...

  4. 青蛙爬井c语言编程,青蛙过河(ACM)

    青蛙过河(ACM) 青蛙过河 Time Limit:1000MS Memory Limit:32767K Total Submit:84 Accepted:51 Description 一条小溪尺寸不 ...

  5. 使用C语言编程求解: 1 - 1/2 + 1/3 - 1/4 + 1/5 - ... + 1/99 - 1/100 的值。

    一.题目描述 使用C语言编程求解: 1 - 1/2 + 1/3 - 1/4 + 1/5 - ... + 1/99 - 1/100 的值. 二.分析求解 这是一道类似数列的求和问题,考察的是循环的使用, ...

  6. c语言填数字游戏求解过程解读,c语言编程--数字游戏.doc

    c语言编程--数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...

  7. 一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。当老农不和猫狗鱼在一起时,狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,则不会发生这种问题。编程解决猫狗鱼过河问题。

    import java.util.ArrayList; import java.util.List; import java.util.Random;/*** 一位老农带着猫.狗.鱼过河,河边有一条船 ...

  8. c语言程序编程线性方程,C语言编程求解线性方程.doc

    C语言编程求解线性方程 本 科 专 业 学 年 论 文 题目:线性方程组求解方法比较 姓 名 郭 凤 专 业 计算机科学与技术专业 班 级 08级本科(2)班 指导教师 刘 晓 娜 完成日期:2010 ...

  9. c语言 最大公约数 最小公倍数的编程,C语言三种算法求解最大公约数与最小公倍数...

    C语言三种算法求解最大公约数与最小公倍数 最大公约数与最小公倍数的求解是很多初学C的人所面临的一道问题.当然这道问题并不难解答,也有很多人已经写过相关的博客,我在此书写此篇博客,一是为了让自己能够夯实 ...

  10. 线性规划编程求解C语言,C语言大作报告线性规划求解基科3字班.doc

    C语言大作报告线性规划求解基科3字班.doc C语言大作业选题设计报告线性规划求解程序一. 概述运筹学(OR)作为强有力的数学工具,在管理科学.决策科学中起到了举足轻重的作用.当最优化的约束条件是线性 ...

最新文章

  1. C++ 类模板的使用
  2. java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误
  3. R语言ggplot2可视化并自定义配置图例的位置到可视化图像的顶部、配置折叠成两行显示图例、并添加图像形状的子图(ggplot2 legend in two rows with guides fill
  4. mysql中的意向锁IS,IX
  5. 【洛谷P1381】单词背诵
  6. Python的collections之namedtuple的使用及其优势
  7. fold函数_Java中使用Map and Fold进行函数式编程
  8. 轮盘赌算法的java实现算例
  9. JavaScript正则表达式的坑很深
  10. .net MVC在服务端代码输出html字符串
  11. WinCE全屏手写输入法
  12. 未来IT互联网企业的发展前景
  13. 重写equals方法原则
  14. JavaScript:通过点击按钮实现个人信息的录入,进而输出个人信息
  15. 数据库系统原理--------层次模型
  16. SMBus与I2C的区别
  17. 3、乐趣国学—“色难”
  18. macOS Catalina 10.15.7正式版 CDR/ISO镜像 for VMware
  19. PDF查找的快捷键是什么?如何更详细查找
  20. 在线支付——微信支付宝二维码合一

热门文章

  1. Django简易测试平台三:模块的增删改查
  2. 活动图在需求分析中的应用
  3. js对iframe内外(父子)页面进行操作
  4. 自学v512工作室_刘伟_Java高端培训系列视频_log4j遇到的问题
  5. top命令参数详解。
  6. 【LeetCode】427. Construct Quad Tree 建立四叉树
  7. mongo 批量替换字符串
  8. 城市的夜空有着雾霾...
  9. win11重置系统之后恢复自己的office服务
  10. 乌班图系统安装python3.5以及pip3