超難演算法題任給出2n個整數不妨假設an滿足a1《a

2021-03-05 09:21:06 字數 980 閱讀 2485

1樓:匿名使用者

我的想法:

使用隨機演算法。

1. 先把這個陣列(大小2n)隨便分成兩個大小為n的陣列,記為arr1和arr2。

2. 然後每次從arr1中選乙個數i,從arr2中選乙個j,如果交換i和j的值能夠使得兩個陣列的和更接近,則交換。否則,不交換。

3. 迴圈第二步一定次數。使得2個陣列的和不斷接近。

第三步的次數非常重要。

隨機演算法肯定可以的,請參考poj2531和poj2454,都是典型的使用隨機演算法的題目,和本題類似。

2樓:匿名使用者

嗯,其實應該不難吧。

首先您先給陣列排序(從小到大,結合下面所說),陣列有序後您再求和,第三步就是從小到大嘗試著去相加,知道達到乙個臨界的下標,在這下標下只有兩個分支,

第一,直接等於和的一半,出來就是結果。

第二,此下標滿足此0下標到此下標剛好比一半小,此下標下乙個之和比一半大,結果為兩者與和的一半相差較小的(及差的絕對值更小)

有了這個下標,只需返回陣列0下標到所求下標的值。

演算法實現可以再問,但大體思想你明白就行。

3樓:膠頭滴管

我來說說,假定這個陣列是排好序,不妨設為公升序,計算出和sum,然後除以2n,必然得到乙個整數字於a1與a2n之間,找到這個整數(或者是最接近他的),然後定義兩個指標同時指向這個數字,乙個左移,乙個右移,注意如果乙個指標到達邊界就只移動另乙個指標,並求和兩個指標間的數字和為sum2,使其最接近sum,這樣就ok了,時間複雜度為0(n),應該滿足要求

4樓:匿名使用者

這和另一道題的解法一樣:給乙個string,輸出string中所有的字元組合,不考慮字元順序。比如「set」有se,st,et,set。

你這個問題就轉成把這些組合列出來,然後看哪個組合離和的一半最近就行了

5樓:胡書培

這個真的很難,貌似是個面試題

超難數學題。急求答案,一道超難的圖形推理題!急求答案!

尉恨蝶吳弼 存在正整數ab滿足條件的,事實上a 1,b 1時xn 2 xn 1 xn a xn 1 xn b 即xn 2 xn 1 xn 1 xn 1 xn 1 xn 2 xn 1 xn 1 xn 1 因為x1 2010 0,x2 2011 0很清楚看出當n 1是,序列都是正整數的 到這裡如果真正證...

超難奧數題,高手請進加分

笨辦法,數吧。假設每個小格仔都是變長為1的正方形。佔1格的,就是a本身這格,1個矩形。我們把它描述為 1x1 長1,高1 佔2格的,形成 日 字 1x2 和倒下的 日 2x1 字最大的那個正方形為5x5 以此類推,根據矩形的格數來數 1格 1 1x1 2格 4 1x2,2x1 3格 4 目 字狀1x...

初中數學幾何題 超難 及答案分析

內容來自使用者 bcgcjp 1 已知 如圖,o是半圓的圓心,c e是圓上的兩點,cd ab,ef ab,eg co 求證 cd gf 初三 2 已知 如圖,p是正方形abcd內點,pad pda 150 求證 pbc是正三角形 初二 3 如圖,已知四邊形abcd a1b1c1d1都是正方形,a2 ...