Codeforces 621D Rat Kwesh and Cheese【Long Double】
来源:互联网 发布:山东php培训机构哪家好 编辑:程序博客网 时间:2024/06/06 01:49
Wet Shark asked Rat Kwesh to generate three positive real numbers x, y and z, from 0.1 to 200.0, inclusive. Wet Krash wants to impress Wet Shark, so all generated numbers will haveexactly one digit after the decimal point.
Wet Shark knows Rat Kwesh will want a lot of cheese. So he will give the Rat an opportunity to earn a lot of cheese. He will hand the three numbersx, y andz to Rat Kwesh, and Rat Kwesh will pick one of the these twelve options:
- a1 = xyz;
- a2 = xzy;
- a3 = (xy)z;
- a4 = (xz)y;
- a5 = yxz;
- a6 = yzx;
- a7 = (yx)z;
- a8 = (yz)x;
- a9 = zxy;
- a10 = zyx;
- a11 = (zx)y;
- a12 = (zy)x.
Let m be the maximum of all the ai, and c be the smallest index (from 1 to 12) such that ac = m. Rat's goal is to find thatc, and he asks you to help him. Rat Kwesh wants to see how much cheese he gets, so he you will have to print the expression corresponding to thatac.
The only line of the input contains three space-separated real numbers x, y and z (0.1 ≤ x, y, z ≤ 200.0). Each ofx, y andz is given with exactly one digit after the decimal point.
Find the maximum value of expression among xyz,xzy,(xy)z,(xz)y,yxz,yzx,(yx)z,(yz)x,zxy,zyx,(zx)y,(zy)x and print the corresponding expression. If there are many maximums, print the one that comes first in the list.
xyz should be outputted asx^y^z (without brackets), and (xy)z should be outputted as(x^y)^z (quotes for clarity).
1.1 3.4 2.5
z^y^x
2.0 2.0 2.0
x^y^z
1.9 1.8 1.7
(x^y)^z
题目大意:
给你12个数,输出最大的那个。
思路:
浮点数范围:
那么对于200^200的数据是可以用long double来存下来的。
所以我们对12个数都取对数,然后再比较大小即可。
如果取两次对数的话,精度损失会很多。
Ac代码:
#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>using namespace std;long double x,y,z;long double num[50];char s[15][15] = {" ","x^y^z", "x^z^y", "(x^y)^z", "(x^z)^y", "y^x^z", "y^z^x", "(y^x)^z", "(y^z)^x", "z^x^y", "z^y^x", "(z^x)^y", "(z^y)^x"};int main(){ while(cin>>x>>y>>z) { long double maxn=-1; char ans[15]; num[1]=pow(y,z)*log(x); num[2]=pow(z,y)*log(x); num[3]=y*z*log(x); num[4]=y*z*log(x); num[5]=pow(x,z)*log(y); num[6]=pow(z,x)*log(y); num[7]=x*z*log(y); num[8]=x*z*log(y); num[9]=pow(x,y)*log(z); num[10]=pow(y,x)*log(z); num[11]=x*y*log(z); num[12]=x*y*log(z); for(int i=1;i<=12;i++) { if(num[i]>maxn) { maxn=num[i]; strcpy(ans,s[i]); } } cout<<ans<<endl; }}
- Codeforces 621D Rat Kwesh and Cheese【Long Double】
- Codeforces 621 D Rat Kwesh and Cheese
- 【17.00%】【codeforces 621D】Rat Kwesh and Cheese
- CodeForces 621 D.Rat Kwesh and Cheese(水~)
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese
- Codeforces Round #341 (Div. 2)D. Rat Kwesh and Cheese
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese(数学 | 复数)
- Codeforces #341 D. Rat Kwesh and Cheese 浮点数处理技巧 好题
- Codeforces Round #341 (Div. 2) Editorial D - Rat Kwesh and Cheese(数学,高精度)
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese (pow,复数
- CF621D - Rat Kwesh and Cheese
- codeforce341 D题 Rat Kwesh and Cheese(复数)
- Codeforces 408D Long Path
- CodeForces 479D Long Jumps
- codeforces 479d Long Jumps
- 暑假-动态规划 III-D - FatMouse and Cheese
- double -> long
- 机器学习笔记
- com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject
- hdu2199
- 仿知乎程序(三)读取webService,解析json,volley以及PullToRefreshListView的使用
- Linux部署以及启动项
- Codeforces 621D Rat Kwesh and Cheese【Long Double】
- git常用命令总结
- spring + shiro + cas 实现sso单点登录
- papagraph vector 训练过程
- 运输公司计算运费问题
- android知识备忘1
- HelloCharts和MPAndroidChart的使用
- 【Tensorflow】tf.placeholder函数
- 23-TCP 协议(紧急标志)