zoukankan      html  css  js  c++  java
  • 洛谷 P1215 【[USACO1.4]母亲的牛奶 Mother's Milk】

    这道题(DFS)就好了,六种情况,(ab,ac,ba,bc,ca,cb),我们直接枚举就可。什么?这样不会结束?用一个(vis)数组判断走过没有就可以了。最后排序输出即可。

    (code:)

    #include <bits/stdc++.h>
    using namespace std;
    int a , b , c , tot;
    int ans[100010] , vis[35][35][35];
    void dfs(int x , int y , int z){
    	if(x == 0) ans[++tot] = z;
    	if(x != 0){
    		int xx = x , yy = y , zz = z;
    		y += x;
    		x = 0;
    		if(y > b) x += y - b , y = b;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    		z += x;
    		x = 0;
    		if(z > c) x += z - c , z = c;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    	}
    	if(y != 0){
    		int xx = x , yy = y , zz = z;
    		x += y;
    		y = 0;
    		if(x > a) y += x - a , x = a;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    		z += y;
    		y = 0;
    		if(z > c) y += z - c , z = c;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    	}
    	if(z != 0){
    		int xx = x , yy = y , zz = z;
    		x += z;
    		z = 0;
    		if(x > a) z += x - a , x = a;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    		y += z;
    		z = 0;
    		if(y > b) z += y - b , y = b;
    		if(!vis[x][y][z]){
    			vis[x][y][z] = 1;
    			dfs(x , y , z);
    		}
    		x = xx , y = yy , z = zz;
    	}
    }
    int main(){
    	cin >> a >> b >> c;
    	vis[0][0][c] = 1;
    	dfs(0 , 0 , c);
    	sort(ans + 1 , ans + tot + 1);
    	for(int i = 1; i <= tot; i++) cout << ans[i] << " ";
    	return 0;
    }
    
  • 相关阅读:
    jmeter录制rabbitmq消息-性能测试
    plsqll连接Oracle的两种方式
    Badboy录制脚本时,提示脚本错误的解决方法
    Decorator
    PyObject and PyTypeObject
    Python LEGB (Local, Enclosing, Global, Build in) 规则
    Python Namespace
    Method Resolve Order (MRO)
    Source Code Structure
    Bound Method and Unbound Method
  • 原文地址:https://www.cnblogs.com/bzzs/p/13144383.html
Copyright © 2011-2022 走看看