時間限制:
20000ms
單點時限:
1000ms
記憶體限制:
256mb
幽香今天心情不錯,正在和花田裡的蟲子玩乙個益智遊戲。
這個遊戲是這樣的,對於乙個陣列a,幽香從a中選擇乙個數a,蟲子從a中選擇乙個數b。a和b可以相同。她們的分數是a*b的因子的個數。
幽香和蟲子當然想要獲得盡可能的高的分數,你能告訴她們應該選擇哪兩個數嗎。
由於幽香是個非常隨意的人,陣列a中的元素都是她隨機選擇的。
一行乙個數n,表示a中整數的數量。
接下來一行n個數,分別表示a1,a2,...,an,為a中的元素。
n <= 100000, 1 <= ai
<= 100000
保證所有的ai都是隨機生成的。
一行表示最大的分數。
樣例輸入
23 4
樣例輸出
6
乙個陣列中有n個數 現在要從這個陣列裡面隨機挑選兩個數(可能相同)
使得這兩個數相乘所得數中因子個數最多
一開始想的就是把陣列中所有數進行素因子分解 儲存素因子的個數
然後列舉 從陣列中挑選兩個數的情況 相乘 根據素因子的情況求出因子個數
顯然會tle
在這裡可以貪心 根據數分解後得到的素因子種類的個數和素因子總的個數 進行排序
選取前面的100個進行列舉計算就可以了。。。
#include #include #include #include #include #include #include #include #include #define mem(a,x) memset(a,x,sizeof a)
#define eps 1e-8
#define mod 10009
#define maxn 100010
#define maxm 100010
#define inf 99999999
#define ll long long
#define bug cout<<"here"else return cnt2>no.cnt2;
}}no[maxn];
void divide(int id)}}
if(x>1)
}ll cal(ll x)}}
if(x>1) num[++cnt]++;
ll res=1;
for(int i=1;i<=cnt;i++)
{// cout<<"i "<
11 6學習筆記
優點 1 有序性。2 紅黑樹結構。效率比較高,很多操作都可以在logn的時間複雜度下實現。缺點 空間佔用率高。紅黑樹雖然提高了執行效率,但是每乙個節點都需要額外儲存父節點 孩子節點以及紅 黑性質,使得每乙個節點都需要占用大量空間。適用場合 對於有順序要求的問題,map更加高效。優點 由於內部實現為雜...
機房測試 11 6
電子科大的題,整體不錯,就是t3水了點。但是分3頁pdf是無法接受的 歡迎 ssw02的部落格 為什麼叫三教呢 ssw02還是個高中生,當然不知道了。讀入 第一行兩個非負整數 表示表示補給點個數和需要收集的體力數 第二行 n 個非負整數 第 i 個整數表示在不觸發 bug 的情況下補給點 提供的體力...
116 跳躍遊戲
給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。注意事項 這個問題有兩個方法,乙個是貪心和動態規劃。貪心方法時間複雜度為o n 動態規劃方法的時間複雜度為為o n 2 我們手動設定小型資料集,使大家可以通過測...