CF1514A Perfectly Imperfect Array 題解
阿新 • • 發佈:2021-12-15
CF1514A Perfectly Imperfect Array 題解
,那麼他們的積就是 \(\prod\limits_{j=1}^ka_{i_j}=\prod\limits_{j=1}^kp_{i_j}^2=(\prod\limits_{i=1}^kp_{i_j})^2\),顯然這是一個完全平方數,與假設矛盾,故不存在積不是完全平方數的子序列。證畢。
Content
給定一個長度為 \(n\) 的序列,問是否存在一個非空子序列,使得這個子序列所有元素的積不是完全平方數。
資料範圍:\(t\) 組資料,\(1\leqslant t\leqslant 100\),\(1\leqslant n\leqslant 100\),序列中的元素在 \(1\) 到 \(10^4\) 之間。
Solution
我們不難想到,如果這個序列中所有的元素都是完全平方數,那麼肯定不存在積不是完全平方數的子序列,因為無論怎麼取,積一定是完全平方數。
我們不妨稍微證明一下:設這個序列可以表示成 \(p_1^2,p_2^2,\dots,p_n^2\),然後假設存在積不是完全平方數的子序列,並且你取的元素的下標為 \(i_1,i_2\dots,i_k\)
我們再看,如果假設存在非完全平方數的元素,由於單個元素也能組成子序列,因此我們只需要取那個非完全平方數的元素,就可以滿足題目要求。
那麼這道題就寫完了。
Code
int main() { MT { int n = Rint, fl = 0; while(n--) { int x = Rint; if((int)sqrt(x) * (int)sqrt(x) != x) fl = 1; } fl ? YES : NO; } return 0; }