码迷,mamicode.com
首页 > 其他好文 > 详细

poj 2555 Drink, on Ice 物理坐标计算

时间:2015-03-15 09:31:45      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:poj   算法   

题意:

把一些冰和一些水混合,求最终的状态和温度。

分析:

质量守恒+能量守恒。计算时将整条曲线平移至(0,0)开始会比较方便,但是发现当Q=0时T=-30,引入新的横坐标dT=T+30,曲线就从(Q,dT)==(0,0)开始了。

代码:

//poj 2555
//sep9
#include <iostream>
#include <cmath>
using namespace std;
const double cw=4.19,ci=2.09,em=335;
int main()
{
	double mw,mi,tw,ti;
	while(1){
		scanf("%lf%lf%lf%lf",&mw,&mi,&tw,&ti);
		if(fabs(mw+mi)<1e-6)
			break;
		double Q;
		Q=mw*(ci*30+em+cw*tw)+mi*ci*(30+ti);
		double m=(mw+mi);
		if(m*ci*30>Q){
			double T=Q/m/ci-30;
			printf("%.1lf g of ice and 0.0 g of water at %.1lf C\n",m,T);
		}
		else if(m*(ci*30+em)<Q){
			double T=(Q-m*(ci*30+em))/m/cw;
			printf("0.0 g of ice and %.1lf g of water at %.1lf C\n",m,T);
		}
		else{
			Q-=m*ci*30;
			double x=Q/em;		
			printf("%.1lf g of ice and %.1lf g of water at 0.0 C\n",m-x,x);
		}
	}
	return 0;	
} 


poj 2555 Drink, on Ice 物理坐标计算

标签:poj   算法   

原文地址:http://blog.csdn.net/sepnine/article/details/44264219

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!