zoukankan      html  css  js  c++  java
  • zoj1005 Jugs

    /*
    题意:有容量分别为Ca Cb 的A B两个壶 需要你通过几种操作使B壶中装有n容量的水
    有如下操作
    empty A
    empty B
    fill A
    fill B
    pour A B
    pour B A
    成功后输出success
    */
    #include<iostream>
    #include<stdio.h>
    #include<cstring>
    #include<string>
    #include<vector>
    using namespace std;
    int vis[1001][1001];
    int ca,cb,n;
    vector <string> v;
    void DFS(int x,int y)
    {
    	if(y==n)
    	{
    		for(int i=0;i<v.size();i++)
    			cout<<v[i]<<endl;
    		cout<<"success"<<endl;
    		return;
    	}
    	if(!vis[ca][y])
    	{
    		vis[ca][y]=1;
    		v.push_back("fill A"); 
    	    DFS(ca,y);
    		v.pop_back();
    	}
    	if(!vis[x][cb])
    	{
    		vis[x][cb]=1;
    		v.push_back("fill B");
            DFS(x,cb);
    		v.pop_back();
    	}
        if(!vis[0][y])
    	{  
    		vis[0][cb]=1;
    		v.push_back("empty A");
    	    DFS(0,cb);
    		v.pop_back();
    	}
    	if(!vis[x][0])
    	{  
    		vis[x][0]=1;
    		v.push_back("empty B");
    	    DFS(x,0);
    		v.pop_back();
    	}
    	if(x+y>=cb&&!vis[x-(cb-y)][cb])
    	{
    		vis[x-cb+y][cb]=1;
    		v.push_back("pour A B");
    		DFS(x-cb+y,cb);
    		v.pop_back();
    	}
    	if(x+y<cb&&!vis[0][x+y])
    	{
    		vis[0][x+y]=1;
    		v.push_back("pour A B");
    		DFS(0,x+y);
    		v.pop_back();
    	}
    	if(x+y>=ca&&!vis[ca][x+y-ca])
    	{
    		vis[ca][x+y-ca]=1;
    		v.push_back("pour B A");
    		DFS(ca,x+y-ca);
    		v.pop_back();
    	}
    	if(x+y<ca&&!vis[x+y][0])
    	{
    		vis[x+y][0]=1;
    		v.push_back("pour B A");
    		DFS(x+y,0);
    		v.pop_back();
    	}
    }
    int main()
    {
       while(cin>>ca>>cb>>n)
       {
    
    	   v.clear();
    	   memset(vis,0,sizeof(vis));
    	   vis[0][0]=1;
    	   DFS(0,0);
       }
    }
    
  • 相关阅读:
    Table to List<object> C#
    Edge Beta 进入无痕模式 快捷方式
    C# 按行读取文件 从某行开始取
    Navicat连接oracle,出现Only compatible with oci version 8.1
    未能找到 System.Web.Helpers
    js json 排序
    使用 NPM 安装Vue并创建项目
    css3动效
    回忆向——诺宝RC机器人仿真
    javascript问题
  • 原文地址:https://www.cnblogs.com/sook/p/2036937.html
Copyright © 2011-2022 走看看