题解 P5116 【[USACO18DEC]Mixing Milk】

2020-03-14 16:01:07来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

题解 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\n",a[i].Milk);//输出最终结果 
27     return 0;
28 }

 


原文链接:https://www.cnblogs.com/LYXin666/p/12491895.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用C++实现:杨辉三角形打印

下一篇:C++ STL迭代器原理和实现