[BZOJ1385][Baltic2000]Division expression
生活随笔
收集整理的這篇文章主要介紹了
[BZOJ1385][Baltic2000]Division expression
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:
BZOJ1385
比較簡單的思維題。
首先,無論怎么加括號,\(x_1\)在分子上,\(x_2\)一定在分母的位置,這很顯然。
對于其他數,一定可以通過加括號轉移到分子上。
(具體就是先處理\(x_2\sim x_n\),再用\(x_1\)去除使分數倒轉。)
如\(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\)即可。
一開始往分解質因數的方向去想了。。其實只要對每個\(x_i(i\not=2)\)和\(x_2\)找\(GCD\)約去即可,最后判斷是否剩\(1\)。
時間復雜度 \(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; }轉載于:https://www.cnblogs.com/LanrTabe/p/10207630.html
總結
以上是生活随笔為你收集整理的[BZOJ1385][Baltic2000]Division expression的全部內容,希望文章能夠幫你解決所遇到的問題。