milk3-section1.4
2017-06-10 16:17
288 查看
题目大意
农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的。有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌桶装满或原桶空了。当然每一次灌注都是完全的。由于节约, 牛奶不会有丢失 写一个程序去帮助农民找出当A桶是空的时候,C桶中牛奶所剩量的所有可能性。
输入格式
一行:三个整数A,B和C。
输出格式
一行:升序地列出当A桶是空的时候,C桶牛奶所剩量的所有可能性
样例输入
8 9 10
样例输出
1 2 8 9 10
题解
递归找出所有可能的牛奶分布情况,递归终点为该种情况已经被记录下来过了,递归的每一步即为牛奶的相互倾倒的动作,一共六种可能。然后将所有A中为空的升序输出C中牛奶量。
代码
#include<stdio.h> int dao(int i,int j,int x) { if(i<x-j) return 0; else return i+j-x; } int shou(int i,int j,int x) { if(i<x-j) return j+i; else return x; } int A,B,C,m=0; int n[8000][3]={0}; int f(int a,int b,int c) { int i,flag=0,at,bt,ct; for(i=0;i<m;i++) { if((n[i][0]==a)&&(n[i][1]==b)&&(n[i][2]==c)) { flag=1; break; } } if(flag==1) { return 0; } else { n[m][0]=a; n[m][1]=b; n[m][2]=c; m++; at=a;bt=b;ct=c; at=dao(a,b,B); bt=shou(a,b,B); f(at,bt,ct); at=a;bt=b;ct=c; at=dao(a,c,C); ct=shou(a,c,C); f(at,bt,ct); at=a;bt=b;ct=c; bt=dao(b,a,A); at=shou(b,a,A); f(at,bt,ct); at=a;bt=b;ct=c; bt=dao(b,c,C); ct=shou(b,c,C); f(at,bt,ct); at=a;bt=b;ct=c; ct=dao(c,a,A); at=shou(c,a,A); f(at,bt,ct); at=a;bt=b;ct=c; ct=dao(c,b,B); bt=shou(c,b,B); f(at,bt,ct); } return 0; } int main() { int i,j,temp,h[8000]; scanf("%d %d %d",&A,&B,&C); f(0,0,C); for(i=0;i<8000;i++) for(j=0;j<7999-i;j++) if(n[j][2]>n[j+1][2]) { temp=n[j][2]; n[j][2]=n[j+1][2]; n[j+1][2]=temp; temp=n[j][1]; n[j][1]=n[j+1][1]; n[j+1][1]=temp; temp=n[j][0]; n[j][0]=n[j+1][0]; n[j+1][0]=temp; } j=0; for(i=0;i<8000;i++) { if(n[i][0]==0&&(n[i][0]+n[i][1]+n[i][2])!=0) { h[j]=n[i][2]; j++; } } for(i=0;i<j-1;i++) printf("%d ",h[i]); printf("%d\n",h[i]); return 0; }
相关文章推荐
- section 1.4 milk3
- USACO-Section 1.4 Mother Milk[模拟][搜索]
- USACO-Section1.4 milk3[深搜]
- USACO - Chapter1 Section 1.4 - Mother's Milk
- USACO-Section1.4 Mother's Milk
- [USACO Training] Section 1.4
- USACO-Section1.4 Barn Repair (贪心算法)
- USACO-Section1.4 Arithmetic Progressions [枚举]
- USACO Section 1.4 packrec
- usaco.section1.4 && 1.5(2015.11.12)
- USACO Section 1.4 Mother's Milk 搜索
- USACO-Section1.4 Prime Cryptarithm (搜索)
- USACO-Section1.3 milk[贪心]
- ariprog-section1.4
- USACO-cha1-sec1.4 Mother's Milk
- USACO-Section1.4 airprog[枚举]
- Section 1.4 搜索
- USACO Section 1.4 More Search Technique
- USACO - Chapter1 Section 1.4 - Arithmetic Progressions
- USACO-Section1.4 Arithmetic Progressions[其他][暴力枚举]