soj 1237. Paint Mix
来源:互联网 发布:mac北京哪里有专柜 编辑:程序博客网 时间:2024/04/28 07:13
题意:
给B加仑的黑色染料(桶装)和W加仑的白色染料(桶装),循环执行下列操作:
取出C杯(1加仑 = 16杯)的黑色染料的桶内的染料加入白色染料的桶内,搅匀;取出C杯的白色染料的桶内的染料加入黑色染料的桶内,搅匀。
问执行了多少次操作之后黑色染料的桶内和白色染料的桶内的染料的 黑白之比 与B/W的比相差不过eps =1e-5?
思路:
设黑色桶内黑色染料占比rb,则黑白之比rb/(1-rb)
设白色桶内黑色染料占比rb,则黑白之比rw/(1-rw)
循环模拟操作。
有一个简单的改进就是,如果黑色染料比白色的更多,那么一定是黑色桶子最先到达 B / W,反之则反之。
#include <cstdio>#define eps 1e-5#define fabs(x) (((x)<0)?(-(x)):((x)))int b, w, c, ans;double rb, rw, tar;int main(){while (scanf("%d %d %d", &b, &w, &c), b||w||c){tar = b*1.0/w;rb = 1; rw = 0;w *= 16; b *= 16;ans = 0;if (w > b){while (fabs(rb/(1-rb)-tar) > eps){rw = (c*rb + w*rw) / (w+c);rb = (c*rw + (b-c)*rb) / b;ans ++;}}else{while (fabs(rw/(1-rw)-tar) > eps){rw = (c*rb + w*rw) / (w+c);rb = (c*rw + (b-c)*rb) / b;ans ++;}}printf("%d\n", ans);}}
- soj 1237. Paint Mix
- sicily 1237. Paint Mix
- soj 1777. Mix order traversal
- MIX
- soj
- paint
- Paint
- paint
- Paint
- Paint
- Paint
- paint
- paint
- paint
- paint
- Paint
- alpha mix
- Mix Milk
- android的半透明效果实现
- POJ 2417 离散对数
- 静态导入和可变参数
- 乌尔都语简介和Unicode由来
- 设计模式之--观察者模式
- soj 1237. Paint Mix
- 【大话设计模式】笔记——单一职责原则
- 文件编程:库函数fopen打开
- VC中如何定义全局变量
- 《程序员的职业素养》读书笔记
- android自定义menu,PopUpWindow弹出菜单
- bash删除文件中含"指定内容"的行
- Xcode debug
- Qualcomm Android display架构分析