zoukankan      html  css  js  c++  java
  • HDU1495_非常可乐_暴力广搜

    题目大意:         给你一杯体积为S的满的牛奶,然后有两个容量之和为S的杯子,求倒最小的次数将这杯牛奶平分。 解题思路:         直接用bfs暴力模拟吧,广搜好写,这道题目比较适合广搜,深搜搞了好久还是没有搞出来,等下把它弄出来。 代码:
    #include
    #include
    using namespace std;
    const MAX=105;
    struct pp
    {
    	int x;
    	int y;
    	int z;
    	int step;
    };
    
    int visited[MAX][MAX][MAX];
    pp pre,cur;
    int a,b,c;
    
    int bfs()
    {
    	queue Q;
    	visited[c][0][0]=1;
    	
    	pre.x=c;
    	pre.y=0;
    	pre.z=0;
    	pre.step=0;
    	
    	Q.push(pre);
    	int half=c/2;
    	//	cout<=a)
    				{
                        cur.x=cur.x+cur.y-a;
                        cur.y=a;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);
    						visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                    else 
    				{
                        cur.y=cur.x+cur.y;
                        cur.x=0;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                }
                if(pre.z=b)
    				{
                        cur.x=cur.x+cur.z-b;
                        cur.z=b;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                    else
    				{
                        cur.z=cur.x+cur.z;
                        cur.x=0;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                }
            }
            if(pre.y)//对a瓶
    		{
                cur=pre;//把a倒入c
                cur.x=cur.x+cur.y;
                cur.y=0;
                if(!visited[cur.x][cur.y][cur.z])
    			{
                    Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                }
                if(pre.z=b)//把a倒入b
    				{
                        cur.y=cur.y+cur.z-b;
                        cur.z=b;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                    else
    				{
                        cur.z=cur.y+cur.z;
                        cur.y=0;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                }
            }
            if(pre.z)//对b瓶
    		{
    			//把b倒回c
                cur=pre;
                cur.x=cur.x+cur.z;
                cur.z=0;
                if(!visited[cur.x][cur.y][cur.z])
    			{
                    Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                }
                if(pre.y=a)//把b倒入a
    				{
                        cur.z=cur.y+cur.z-a;
                        cur.y=a;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                    else
    				{
                        cur.y=cur.y+cur.z;
                        cur.z=0;
                        if(!visited[cur.x][cur.y][cur.z])
    					{
                            Q.push(cur);visited[cur.x][cur.y][cur.z]=1;
                        }
                    }
                }
            }
    		
    	}
    	return 0;
    }
    void init()
    {
    	for(int i=0;i>c>>a>>b,a||b||c)
    	{
    		int ans;
    		init();
    		if(c%2)
    		{
    			cout<<"NO"<
  • 相关阅读:
    Effective C++ 笔记 —— Item 6: Explicitly disallow the use of compiler-generated functions you do not want.
    Oracle DataBase 用户管理与权限管理
    企业邮箱配置SSL发送邮件
    如何知道安装程序在进行安装时对你的电脑到底做了什么?
    架构师笔记:康威定律
    conda 源配置
    myBatis的批量提交方式
    转载:request_time和upstream_response_time详解
    [PowerShell]比较运算符
    [PowerShell]字符串
  • 原文地址:https://www.cnblogs.com/cchun/p/2520196.html
Copyright © 2011-2022 走看看