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"<
  • 相关阅读:
    关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思
    关于最近工程的一些心得
    关于springMVC中component-scan的问题以及springmvc.xml整理
    初学node.js有感三
    初学node.js有感二
    初学node.js有感一
    编译原理——算符优先分析文法(附源代码)
    数据结构与算法系列研究九——排序算法的一些探讨
    LeetCode: Same Tree
    LeetCode: Symmetric Tree
  • 原文地址:https://www.cnblogs.com/cchun/p/2520196.html
Copyright © 2011-2022 走看看