一道挺不錯的題目。定義乙個陣列的答案:將這個陣列分成k組,每組裡面任意一對數字乘積都是平方數,k要最小。題目給出乙個n個長度的大小,要你求每個子陣列的答案,最後輸出答案為1.,2,3…n的子陣列各有多少個。
n最大是5000,子陣列個數是n*(n+1)/2,n平方也是沒問題的,因此我們只要考慮,如果o(1)的處理 乙個子陣列。先證明乙個東西,假設a∗b
==d2
,b∗c
==e2
,ac∗
b==d
∗e,那
麼a∗c
必然是平
方數
a*b==d^,b*c==e^,\sqrt*b==d*e,那麼a*c必然是平方數
a∗b==d
2,b∗
c==e
2,ac
∗b=
=d∗e
,那麼a
∗c必然
是平方數
這個說明,只要兩兩有關係的數字,都可以加入到同乙個組,關係是可以傳遞的。因此我們可以先預處理出對於每個j,在iusing namespace std;
typedef long long ll;
typedef pairpii;
typedef vectorvi;
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define fi first
#define se second
#define de(x) cout<<#x<<"="<=(a);--i)
const int n=2e5+5;
ll a[n],ans[n],mx[n];
int main()
} } rep(i,1,n+1)
} rep(i,1,n+1)
printf("%i64d ",ans[i]);
return 0;
}
思 說文解字
說文解字 裡說 思,容也,從心囟聲。我們過去都以為思的上半部分是個 田 其實不是。從篆文本形來看,上半部原來是囟門的 囟 我們知道,剛出生的嬰兒,顱骨上方有一塊尚未完全閉合的地方,那個地方就是囟門。說白了,就是頭腦加心靈共同工作的狀態,才叫有所思。大家或許會問 你說 從心囟聲 囟門這個 囟 跟我們今...
寫For時請三思再三思
昨天寫了這樣一段處理xml的 處理系統返回的結果,最後居然導致系統死慢死慢的,我百思不得其解,到底是document類處理的問題呢?還是資料過多?private void formatresults condition condition catch xpathexpressionexception...
《思修》監考感悟
今天下午大一的學生在機房進行了期末的思修考試,我也身擔乙個重要的職務 監考人員,第一次進行上機考試,考試系統是我們提高班的學生做的,期間很可能會出現一些意想不到的問題。下面說說考試期間遇到的問題。考試之前雖然一再的強調不要重新整理 瀏覽器等一些操作,以影響自己的成績來震懾他們,但是最後發生的問題還是...