题解 P5116 [USACO18DEC]Mixing Milk
Posted lyxin666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 P5116 [USACO18DEC]Mixing Milk相关的知识,希望对你有一定的参考价值。
这题其实完全可以放到入门,其实只要模拟倒牛奶的结果就可以了!
1 #include<cstdio> 2 using namespace std; 3 struct node{ 4 int Volume,Milk;//Volume=c,Milk=m 5 }a[5];//用来存放三个桶的相关信息 6 void Pour(int From,int to){//模拟倒牛奶的过程,表示从From桶倒到to桶 7 if(a[From].Milk<=a[to].Volume-a[to].Milk){//如果可以把From桶倒完的情况 8 a[to].Milk+=a[From].Milk;//to桶的牛奶加上了From桶的 9 a[From].Milk=0;//From桶的牛奶倒空了 10 } 11 else{//倒不完的情况 12 a[From].Milk=a[From].Milk-a[to].Volume+a[to].Milk;//From桶剩下的牛奶 13 a[to].Milk=a[to].Volume;//to桶倒满了 14 } 15 } 16 int main(){ 17 for(int i=1;i<=3;i++) 18 scanf("%d%d",&a[i].Volume,&a[i].Milk);//输入 19 for(int i=1;i<=33;i++){//按顺序完成1~99的倒牛奶过程 20 Pour(1,2);//1倒到2 21 Pour(2,3);//2倒到3 22 Pour(3,1);//3倒到1 23 } 24 Pour(1,2);//第100次 25 for(int i=1;i<=3;i++) 26 printf("%d ",a[i].Milk);//输出最终结果 27 return 0; 28 }
以上是关于题解 P5116 [USACO18DEC]Mixing Milk的主要内容,如果未能解决你的问题,请参考以下文章
P3110 [USACO14DEC]Piggy Back S 题解
题解P2854 [USACO06DEC]牛的过山车Cow Roller Coaster