365. 水壶问题-暴力模拟倒水过程-递归法

有两个水壶,容量分别为 jug1Capacity 和 jug2Capacity 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到 targetCapacity 升。

如果可以得到 targetCapacity 升水,最后请用以上水壶中的一或两个来盛放取得的 targetCapacity 升水。

你可以:

装满任意一个水壶
清空任意一个水壶
从一个水壶向另外一个水壶倒水,直到装满或者倒空

示例 1:

输入: jug1Capacity = 3, jug2Capacity = 5, targetCapacity = 4
输出: true
解释:来自著名的 “Die Hard”

示例 2:

输入: jug1Capacity = 2, jug2Capacity = 6, targetCapacity = 5
输出: false

示例 3:

输入: jug1Capacity = 1, jug2Capacity = 2, targetCapacity = 3
输出: true

int r;bool   f(int a,int b,int c,int now_a,int now_b,int **abr){abr[now_a][now_b]=1;if(r==1){return true;}//  printf("ab %d %d  %c",now_a,now_b);if(now_a==c||now_b==c){r=1;//  printf("dfasf");return true;}if(now_a+now_b==c){r=1;return true;}if(now_b+now_a>a+b){return false;}if(now_a<a){if(abr[a][now_b]==0)if( f(a,b,c,a,now_b,abr)){return true;}}if(now_b<a){if(abr[now_a][b]==0)if(f(a,b,c,now_a,b,abr)){return true;}}if(now_a<=a&&now_b<=b&&(now_a+now_b)!=0){if(abr[now_a][0]==0)if(f(a,b,c,now_a,0,abr)){return true;}if(abr[0][now_b]==0)if(f(a,b,c,0,now_b,abr)){return true;}if(now_a+now_b<b){if(abr[0][now_a+now_b]==0)if(f(a,b,c,0,now_a+now_b,abr)){return true;}}else{if(abr[now_a+now_b-b][b]==0)if(f(a,b,c,now_a+now_b-b,b,abr)){return true;}}if(now_a+now_b<a){if(abr[now_a+now_b][0]==0)if(f(a,b,c,now_a+now_b,0,abr)){return true;}else{if(abr[a][now_a+now_b-a]==0)if(f(a,b,c,a,now_a+now_b-a,abr)){return true;}}}}if(now_a==a&&now_b<b){if(abr[a][b]==0)if(f(a,b,c,a,b,abr)){return true;}}if(now_a<a&&now_b<a){if(abr[a][b]==0)if(f(a,b,c,a,b,abr)){return true;}}return false;}
bool canMeasureWater(int jug1Capacity, int jug2Capacity, int targetCapacity){r=0;int a=fmin(jug1Capacity,jug2Capacity),b=fmax(jug1Capacity,jug2Capacity),c=targetCapacity;int **abr=(int **)malloc(sizeof(int*)*(a+1));for(int i=0;i<=a;i++){abr[i]=(int *)malloc(sizeof(int)*(b+1));}for(int i=0;i<=a;i++){for(int j=0;j<=b;j++){abr[i][j]=0;}}if(a+b<c){return false;}if(f(a,b,c,0,0,abr)){return true;}return false;}

365. 水壶问题-暴力模拟倒水过程-递归法相关推荐

  1. [LeetCode解题报告] 365. 水壶问题

    [LeetCode解题报告] 365. 水壶问题 一. 题目 1. 题目描述 2. 原题链接 二. 解题报告 1. 思路分析 2. 复杂度分析 3. 代码实现 三. 本题小结 一. 题目 1. 题目描 ...

  2. Leetcode.365 水壶问题

    题目链接 Leetcode.365 水壶问题 mid 题目描述 有两个水壶,容量分别为 x和 y升.水的供应是无限的.确定是否有可能使用这两个壶准确得到 z升. 如果可以得到 z升水,最后请用以上水壶 ...

  3. 【算法-Java实现】 换钱的方法数(暴力递归法)

    [算法-Java实现] 换钱的方法数(暴力递归法) 文章目录 [算法-Java实现] 换钱的方法数(暴力递归法) 一.问题描述: 二.问题解答: **举例:** **思路:==暴力递归==** 三.算 ...

  4. 牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟

    牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟 题意 思路 Code 传送门: https://ac.nowcoder.com/acm/contest/16081/E 题意 登山顺 ...

  5. 【2018.3.24】模拟赛之四-ssl2548 旋转【暴力模拟】

    正题 大意 给出一块黑块和白块组成的版,将其旋转90°后和之前的黑块叠加,求最初始和每次旋转后的黑块数. 解题思路 暴力模拟不解释 代码 #include<cstdio> #include ...

  6. Sysweld笔记:利用稳态算法加速算法模拟焊接过程的残余应力

    作者:贾亚波博士,仿真秀专栏作者 在进行热力耦合的仿真过程中,如果模型足够的长并且热源速度恒定,通常其热学,相变以及热力耦合都会达到稳态的过程,因此如何直接计算稳态问题成为了大家研究的热点问题. 由于 ...

  7. HLJUOJ1117(暴力模拟)

    八数码 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 109  Solved: 19 [Submit][Status][Web Board] Desc ...

  8. Pots (模拟倒水)

    You are given two pots, having the volume of A and B liters respectively. The following operations c ...

  9. LeetCode 365. 水壶问题

    365. 水壶问题 题目链接-365. 水壶问题 解题思路 裴蜀定理 裴蜀等式:若a,ba,ba,b是整数,且gcd(a,b)=dgcd(a,b)=dgcd(a,b)=d,那么对于任意的整数x,yx, ...

最新文章

  1. Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略
  2. 【转摘】如何得心应手的玩转Excel
  3. Leedcode9-linked-list-cycle-i
  4. php由哪几部分组成,微型计算机通常是由哪几部分组成?
  5. 如何限制浏览器使用_如何使用浪涌电流限制器NTC(一)
  6. WebApi_基于token的多平台身份认证架构设计(Z)
  7. Visual Assist X V10.4.1626.0 不错的软件,让VC++也能自动提示
  8. Copula函数初了解
  9. BP神经网络的预测模型
  10. 文献解读|基于转录组-蛋白质组数据联合分析对煎蛋水母毒性评价、毒素筛选及其干预
  11. 树莓派控制超声波测距原理及实现
  12. 基于websocket的跨平台通信——iPhone/iPad/Mac控制树莓派(二):Swift控制端搭建,网络延迟显示
  13. 得力针式打印机第一联清晰第二联不清晰解决办法
  14. 2022年广东省安全员A证第三批(主要负责人)考试题模拟考试题库及答案
  15. 为ThinkCentre M910t-NO76重装Windows7(64位)系统
  16. 为何需要警惕人工智能
  17. 电子科技大学 图论期末复习 公式快速索引
  18. deepin显卡驱动管理器在哪_deepin20 安装英伟达闭源驱动的步骤详解
  19. SV-随机约束和分布-自用
  20. 2022-2028全球及中国点对点微波天线行业研究及十四五规划分析报告

热门文章

  1. 蜡炬教育观:优秀的程序员,都有强大的自学能力
  2. 使用parted 对大容量盘进行分区
  3. 南卡Neo骨传导运动耳机正式发布,打造音质最强款骨传导耳机
  4. Mac 你没有权限打开该应用
  5. php网银支付,网银在线支付接口实例 php版
  6. Python + Selenium: expected_conditions介绍
  7. 有趣php小程序,最近发现的 5 个微信小程序,有趣又实用!
  8. 常用Windows命令行语句
  9. SQL Server事务隔离级别详解
  10. 小学计算机使用计划书,小学生学习计划书范文