D. Rat Kwesh and Cheese

题目连接:

http://www.codeforces.com/contest/621/problem/D

Description

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 have exactly 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 numbers x, y and z 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 that c, 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 that ac.

Input

The only line of the input contains three space-separated real numbers x, y and z (0.1 ≤ x, y, z ≤ 200.0). Each of x, y and z is given with exactly one digit after the decimal point.

Output

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 as xyz (without brackets), and (xy)z should be outputted as (xy)z (quotes for clarity).

Sample Input

1.1 3.4 2.5

Sample Output

zyx

Hint

题意

12个表达式,让你输出最大的表达式

题解:

这个方法是Hezhu的,Orz

太厉害了

我们仔细想一想,次方这个乱七八糟的东西,我们显然可以直接取一个log

但是这个东西还是有200^200,按照题解的方法,你还得取个log,然后再讨论一堆东西

这个太麻烦了

直接上long double就好了,long double 这个东西有自带的powl,logl函数,可以精度更加精确,而且这个玩意儿是存储的科学计数法

总之比较玄学。

最差情况,我想的是,有效数数字就应该只需要16位吧?

代码

#include<bits/stdc++.h>
using namespace std; string s[12]={"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"};
long double d[12];
int main()
{
long double x,y,z;
cin>>x>>y>>z;
d[0]=powl(y,z)*logl(x);
d[1]=powl(z,y)*logl(x);
d[2]=z*y*logl(x);
d[3]=z*y*logl(x);
d[4]=powl(x,z)*logl(y);
d[5]=powl(z,x)*logl(y);
d[6]=z*x*logl(y);
d[7]=z*x*logl(y);
d[8]=powl(x,y)*logl(z);
d[9]=powl(y,x)*logl(z);
d[10]=x*y*logl(z);
d[11]=x*y*logl(z);
long double mx = -1e16;
int idx = 0;
for(int i=0;i<12;i++)
if(mx<d[i])
mx=d[i],idx=i;
cout<<s[idx]<<endl;
}

Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese 数学的更多相关文章

  1. Codeforces Round #341 Div.2 D. Rat Kwesh and Cheese

    嗯本来想着直接算出来不就行了吗 然后我想到了200^200^200....... 好吧其实也不难取两次log就行了 然后我第一次写出来log就写残了........... log里面的拆分要仔细啊.. ...

  2. Codeforces Round #341 (Div. 2)

    在家都变的懒惰了,好久没写题解了,补补CF 模拟 A - Wet Shark and Odd and Even #include <bits/stdc++.h> typedef long ...

  3. Codeforces Round #341 (Div. 2) ABCDE

    http://www.cnblogs.com/wenruo/p/5176375.html A. Wet Shark and Odd and Even 题意:输入n个数,选择其中任意个数,使和最大且为奇 ...

  4. Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks dp+矩阵加速

    题目链接: http://codeforces.com/problemset/problem/621/E E. Wet Shark and Blocks time limit per test2 se ...

  5. Codeforces Round #341 Div.2 C. Wet Shark and Flowers

    题意: 不概括了..太长了.. 额第一次做这种问题 算是概率dp吗? 保存前缀项中第一个和最后一个的概率 然后每添加新的一项 就解除前缀和第一项和最后一项的关系 并添加新的一项和保存的两项的关系 这里 ...

  6. Codeforces Round #341 Div.2 B. Wet Shark and Bishops

    题意:处在同一对角线上的主教(是这么翻译没错吧= =)会相互攻击 求互相攻击对数 由于有正负对角线 因此用两个数组分别保存每个主教写的 x-y 和 x+y 然后每个数组中扫描重复数字k ans加上kC ...

  7. Codeforces Round #341 Div.2 A. Wet Shark and Odd and Even

    题意是得到最大的偶数和 解决办法很简单 排个序 取和 如果是奇数就减去最小的奇数 #include <cstdio> #include <cmath> #include < ...

  8. Codeforces Round #341 (Div. 2) E - Wet Shark and Blocks

    题目大意:有m (m<=1e9) 个相同的块,每个块里边有n个数,每个数的范围是1-9,从每个块里边取出来一个数组成一个数,让你求组成的方案中 被x取模后,值为k的方案数.(1<=k< ...

  9. Codeforces Round #341 (Div. 2) C. Mike and Chocolate Thieves 二分

    C. Mike and Chocolate Thieves time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

随机推荐

  1. peewee外键性能问题

    # 转载自:https://www.cnblogs.com/miaojiyao/articles/5217757.html 下面讨论一下用peewee的些许提高性能的方法. 避免N+1查询 N+1查询 ...

  2. python基础===requests学习笔记

    这里有一个新的学习requests网站:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html2017/11/30 Requ ...

  3. ==和equals()方法的区别

    ==和equals()方法的区别 这是一道经典的面试题,但是很多人对其一直很困惑,最近刚好复习了他们两者的区别,现总结如下: 一.==:两端可以存放不同的数据     1.放基本数据类型:根据基本数据 ...

  4. Sql中把datetime转换成字符串(CONVERT)(转)

    一.回顾一下CONVERT()的语法格式: CONVERT (<data_ type>[ length ], <expression> [, style]) 二.这里注重说明一 ...

  5. P2511 [HAOI2008]木棍分割

    目录 Description Solution Code Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, ...

  6. PHP PDO类

    <?php //数据库连接类,不建议直接使用DB,而是对DB封装一层 //这个类不会被污染,不会被直接调用 class DB { //pdo对象 private $_pdo = null; // ...

  7. AC日记——[POI2014]KUR-Couriers 洛谷 P3567

    [POI2014]KUR-Couriers 思路: 卡空间,sb题: 代码: #include <bits/stdc++.h> using namespace std; #define m ...

  8. .NET 简单的递归使用场景

    什么是递归:自己调用自己,直到满足条件跳出 递归的缺点: 递归很耗内存,容易让机器挂掉 比如递归文件夹,当文件夹的层级有非常非常多的时候,就很容易挂掉,因为递归的时候把上层文件夹的上下文都保存在内存中 ...

  9. LR运行场景时出现的error

    LR运行场景时出现的error 1.Action.c(24): Error -27740: Overlapped transmission of request to "home.asiai ...

  10. 文件权限之facl丶文件属性丶特殊权限

    (1)facl:文件的访问控制列表 作用:对象目录或文件可以对不同的用户设定不同的权限 1)getfacl:查看文件或目录的访问控制列表权限 查看 getfacl file/dir acl权限特征:如 ...