【codevs1226】倒水问题 宽搜

  • 题目描述 Description

    • 有两个无刻度标志的水壶,分别可装 x 升和 y 升 ( x,y 为整数且均不大于 100 )的水。设另有一水 缸,可用来向水壶灌水或接从水壶中倒出的水, 两水壶间,水也可以相互倾倒。已知 x 升壶为空 壶, y 升壶为空壶。问如何通过倒水或灌水操作, 用最少步数能在x或y升的壶中量出 z ( z ≤ 100 )升的水 来。
  • 输入描述 Input Description

    • 一行,三个数据,分别表示 x,y 和 z;
  • 输出描述 Output Description

    • 一行,输出最小步数 ,如果无法达到目标,则输出”impossible”
  • 样例输入 Sample Input

    • 3 22 1
  • 样例输出 Sample Output

    • 14

    比小白上的倒水问题弱多了……宽搜+if练习题

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
int x,y,target;
struct state{
    int x,y,step;
}f;

queue<state> q;
bool vis[233][233];
int bfs()
{
    q.push(f);
    vis[f.x][f.y]=1;
    while(q.size())
    {
        f=q
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值