[BZOJ1385][Baltic2000]Division expression
生活随笔
收集整理的這篇文章主要介紹了
[BZOJ1385][Baltic2000]Division expression
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目鏈接:
BZOJ1385
比較簡單的思維題。
首先,無論怎么加括號(hào),\(x_1\)在分子上,\(x_2\)一定在分母的位置,這很顯然。
對于其他數(shù),一定可以通過加括號(hào)轉(zhuǎn)移到分子上。
(具體就是先處理\(x_2\sim x_n\),再用\(x_1\)去除使分?jǐn)?shù)倒轉(zhuǎn)。)
如\(x_1/(x_2/\cdots/x_n)=x_1/\frac{x_2}{\prod_{x=3}^nx_i}=\frac{\prod_{x\not=2}\limits x_i}{x_2}\)
那么只需判斷\(\prod_{x\not=2}\limits x_i\)是否整除\(x_2\)即可。
一開始往分解質(zhì)因數(shù)的方向去想了。。其實(shí)只要對每個(gè)\(x_i(i\not=2)\)和\(x_2\)找\(GCD\)約去即可,最后判斷是否剩\(1\)。
時(shí)間復(fù)雜度 \(O(Dnlog_2x)\)
#include <cstdio>int Gcd(int a,int b){return b?Gcd(b,a%b):a;}int t,n,x[10005];int main() {for(scanf("%d",&t);t--;){scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&x[i]);for(int i=1;i<=n;++i)if(i!=2)x[2]/=Gcd(x[2],x[i]);puts(x[2]==1?"YES":"NO");}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/LanrTabe/p/10207630.html
總結(jié)
以上是生活随笔為你收集整理的[BZOJ1385][Baltic2000]Division expression的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。