[BZOJ 5074] 小B的数字

题目传送-BZOJ5074

题意:

T组数据
你有一个数组\(A\),要求一个数组\(B\)
\(B\)中的数都是2的正整数次幂。
\(x=\prod_{i=1}^nB_i\),有\(x|B_i^{A_i},i\in1,2,3,...,n\)成立
\(T \le 10,n \le 100000\)

题解:

首先\(B\)可以直接转化为每个元素的指数,限制就是\(x=\sum_{i=1}^nB_i\),有\(x\le B_i*A_i,i\in1,2,3,...,n\)成立
所以\(B_i \ge \frac{x}{A_i}\)所以\(x \ge x*\sum_{i=1}^n\frac{1}{a_i}\)
\(over\)

过程:

一切顺利

代码:

const int N=100010;
int T,n;
double p;
int main() {
	read(T);
    while(T--) {
        read(n); p=0;
        for (int i=1,x;i<=n;i++){
            read(x);
            p=p+1.0/x;
        }
        puts(p>1 ? "NO" : "YES");
    }
    return 0;
}

用时:3min

posted @ 2018-08-28 08:27  functionendless  阅读(95)  评论(0编辑  收藏  举报