客博的ارمىتاشقۇل

a,b,cR+,abc=1a,b,c\in R_+,abc=1证明:

1a3(b+c)32\sum\frac1{a^3(b+c)}\geq\frac32

有:

[1a3(b+c)+a(b+c)4]1a\sum[\frac1{a^3(b+c)}+\frac{a(b+c)}4]\geq\sum\frac1a

故:

1a3(b+c)1aab2\sum\frac1{a^3(b+c)}\geq\sum\frac1a-\sum\frac{ab}2

=1a12c=12a12×3abc3=32=\sum\frac1a-\sum\frac1{2c}=\sum\frac1{2a}\geq\frac12\times\frac3{\sqrt[3]{abc}}=\frac32

证毕。

使用了Java中的BigDecimal来进行高精度计算,下面是代码:(Java党的福利qwq):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
import java.math.BigInteger;
import java.math.BigDecimal;
import java.text.DecimalFormat;
class Main {
public static void main(String[] args)throws Exception
{
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
BigDecimal a= input.nextBigDecimal();
BigDecimal b=input.nextBigDecimal();
BigDecimal c= a.add(b);
BigDecimal d= c.stripTrailingZeros();
String s;
s=d.toPlainString();
System.out.println(s);
}
input.close();
}
}
OI

这是一道很考验数学素质的一道题目。但是作为一名优秀每天划水的OIer,这道题是不难的。来看我的分析:

因为数字很大,因此我们可以求以1010为底的对数:lgv=lg(xM+11)(M+)×lg2+(2E1)×lg2=lgA+Blgv=lg(x^{M+1}-1)-(M+) \times lg2+(2^E-1) \times lg2=lgA+B

根据题意可以推算出最大值vmax=(112M+1)×22E1=A×10Bv_max=(1-\frac{1}{2^{M+1} })\times 2^{ {2^E}-1}=A\times 10^B

然后我们遍历所有可能的MM,根据上面推导出来的公式求EE的值,然后再利用EEMM求出lgvlgv和输入的值进行比较,如果相等,说明MMEE就是所求的值。做两个浮点数相等判断的时候,我们需要设置一个误差常量epseps,具体大小要根据具体的题目来定。

完整的程序(c++11)如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <bits/stdc++.h>
using namespace std;
const double EPS=1e-6;
int main(void)
{
char line[256];
double lg2=log10(2),a,v;
int b;
while(scanf("%s",line)==1&&strcmp(line,"0e0")!=0)
{
*strchr(line,'e')=' ';
sscanf(line,"%lf%d",&a,&b);
v=log10(a)+b;
for(int m=1;m<=10;++m)
{
int mhe=round(log10((v+m*lg2-log10(pow(2,m)-1))/lg2+1)/lg2);
if(fabs(((1<<mhe)-1)*lg2+log10(pow(2,m)-1)-m*lg2-v)<=EPS)
{
printf("%d %d\n",m-1,mhe);
break;
}
}
}
return 0;
}
OI


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 载入天数...载入时分秒... , 总访问量为 次 。