题目

某寺庙里7个和尚:轮流挑水,为了和其他任务不能冲突,各人将有空天数列出如下表:
和尚1: 星期二,四;
和尚2: 星期一,六;
和尚3: 星期三,日;
和尚4: 星期五;
和尚5: 星期一,四,六;
和尚6: 星期二,五;
和尚7: 星期三,六,日;
请将所有合理的挑水时间安排表

思路 回朔法求解

回朔法即每进行一步,都试图在当前部分解的基础上扩大该部分解。扩大时,首先检查扩大后是否违反了约束条件,若不违反,则扩大之,然后继续在此基础上按照类似的方法进行,直至成为完整解;若违反,则放弃该步以及它所能生成的部分解,然后按照类似的方法尝试其他可能的扩大方式,直到尝试了所有的扩大方式。请输入和尚1的空闲时间:0 1 0 1 0 0 0
请输入和尚2的空闲时间:1 0 0 0 0 1 0
请输入和尚3的空闲时间:0 0 1 0 0 0 1
请输入和尚4的空闲时间:0 0 0 0 1 0 0
请输入和尚5的空闲时间:1 0 0 1 0 1 0
请输入和尚6的空闲时间:0 1 0 0 1 0 0
请输入和尚7的空闲时间:0 0 1 0 0 1 1

代码

/*---------------------------------------
*   日期:2015-07-06
*   作者:SJF0115
*   题目:和尚挑水
*   来源:华为机试真题
-----------------------------------------*/
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;void DrawingWater(vector<vector<int> > &spare,int index,int &count,vector<int> &week,vector<bool> &visited){int i;if(index == 7){++count;cout<<"方案"<<count<<endl;for(i = 0; i < 7;++i){cout<<"星期"<<i+1<<"   和尚"<<week[i]+1<<"   挑水"<<endl;}//forcout<<endl;return;}//iffor(i = 0;i < 7;++i){week[index] = i;// 判断和尚j是否已经挑过水及和尚星期n是否有空if(!visited[i] && spare[i][index] == 1){visited[i] = true;DrawingWater(spare,index+1,count,week,visited);visited[i] = false;}//if}//for
}int main(){vector<vector<int> > spare(7,vector<int>(7,0));//freopen("C:\\Users\\Administrator\\Desktop\\acm.txt","r",stdin);for(int i = 0;i < 7;++i){// 初始化和尚的空闲时间for(int j = 0;j < 7;++j){cin>>spare[i][j];}//for}//forint count = 0;vector<int> week(7,0);vector<bool> visited(7,false);DrawingWater(spare,0,count,week,visited);cout<<"总共"<<count<<"种方案"<<endl;return 0;
}

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

[华为机试真题][2015]65.和尚挑水相关推荐

  1. [华为机试真题][2014]62.去除重复字符并排序

    题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...

  2. 【华为机试真题 Python实现】查找众数及中位数

    文章目录 前言 题目描述 示例 1 示例 2 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会 ...

  3. 【华为机试真题详解】不含 101 的数【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 示例2 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果 ...

  4. 【华为机试真题详解】开心消消乐【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  5. [华为机试真题]69.姓名的夫妻相

    题目 在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是"夫妻相".所谓"夫妻相",就是两个人看上去比较般配,长相.身材等某些方面有一定的相似度. 本题则另辟蹊 ...

  6. 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

  7. 【华为机试真题详解】高矮个子排队

    文章目录 前言 题目描述 示例 1 示例 2 示例 3 题目分析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  8. 【华为机试真题详解】优选核酸检测点【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  9. 【华为机试真题 Python实现】热点网站统计【2022 Q1 Q2 | 100分】

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

最新文章

  1. 横竖屏切换时Activity的生命周期
  2. Eclipse 安装热部署JRebel
  3. SAP QM Multiple Specifications的使用 I
  4. 数据库事务转载基础二:oracle事务隔离级别
  5. Linux ps命令、Linux top命令
  6. 对话MathWorks:解读MATLAB技术生态圈与未来趋势
  7. visio 科学图形包_如何科学地做笔记
  8. Postgres数据库报错:FATAL: Peer authentication failed for user “zabbix“ Previous connection kept
  9. 网络安全-渗透测试前置知识
  10. iOS开发-代替UDID被弃用和UUID使用缺陷的解决方案
  11. 小米10青春版刷鸿蒙,功能齐全也不行!小米10青春版现已跌至新低价,高刷已成趋势?...
  12. 博士生导师谈他如何检索文献
  13. python中re.compile_什么是pythonre.compile函数?
  14. Python爬取某站上海租房图片!
  15. 人体脂肪的形成及如何消耗
  16. Android APP 启动时间测试
  17. 蛋白组学资讯:百趣协助,非小细胞癌转移机制新解
  18. 小程序预览加载不出图片
  19. 媒体文件查看/上传至WP媒体库
  20. 浅谈企业拥有门户网站的重要性

热门文章

  1. Kruskal 算法
  2. Python学习(一) 进制转换、ASCLL转换
  3. 神策数据分析之一-名词解释
  4. 转: C#控制鼠标点击,移动,滑轮滚动
  5. 03. Vuepress2.x 设置 favicon.ico 图标
  6. 牛客网--按照左右半区的方式重新组合单链表
  7. 02驱动力在哪里 - 献给迷茫的测试人员
  8. 2019-2020学年上学期《算法设计与分析》期中小测
  9. VScode+Taro开发小程序
  10. 14-【go】Go中time.Parse()和time.ParseInLocation()的区别