不一樣的排序
序號:#128
難度:一般
時間限制:1000ms
記憶體限制:32m
描述有一天利姆魯想教他的哥布林部下學數學,因為他之前教過因子,現在想考考他們。
利姆魯問現在有 n 個數,需要用因子個數的多少進行排序,因子個數多的排在後面,因子個數少的排在前面,如果因子個數相同那麼就比較這個數的大小,數大的放在後面,數小的放在前面。現在讓你說出排序之後第
k個位置的數字是多少。
題目**:
小公尺oj:128
這個題的難點在於找因子數,我本來是直接通過函式去找乙個數的因子數,但是回超時,看了其他大佬的部落格,才知道可以通過打表,把答案存放在陣列中,這樣就不會超時了。
這個是我看的那個部落格:
#include#include#includeusing namespace std;
#define max 1000001
int arr[10000001]=,value[max]=; //value用來存放因子個數
void inti(int n)
value[i*i]++; //i*i的因子數加1,因為找到了i*i的乙個因子:i }}
bool compare(int a,int b)
sort(arr,arr+n,compare); //排序
cout
}
不一樣又不一樣的 木板接水
空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...
不一樣的氣泡排序
排序思路 迴圈取出最大值放在陣列的最後,最小值放到最前。上 void bubblesort5 int arr 選出最大的數放到陣列左邊 if arr i min if x1 right 1 x2 left t1 arr right 1 快取右邊界值 t2 arr left 快取左邊界值 arr ri...
我們不一樣
前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...