挑戰程式競賽系列(17) 3 1最大化平均值

2021-08-02 22:34:01 字數 1660 閱讀 2659

詳細**可以fork下github上leetcode專案,不定期更新。

練習題如下:

01分數規劃,具體可以參考博文寫的非常詳細且通俗易懂。

我的認識:中學裡學過二分法求函式零點,其實該**模擬的就是這種求解過程,所以只要寫出目標函式,零點不難求。

接著就得到了求和式: ∑i

=1n(

ai−l

⋅bi)

≥0要刪除k個物品,當然選擇貢獻最小的,所以按照ai

−l⋅b

i 排序,選擇n-k個物品,排除其餘貢獻較小的k個物品。

**如下:

static class pair implements comparable

}static pair p;

static

double l;

static

int k;

static

int n;

public

static

void

main(string args) throws ioexception

for (int i = 0; i < n; ++i)

double lf = 0;

double rt = 1;

while (math.abs(rt -lf) > 1e-4)

system.out.printf("%.0f\n",lf * 100);}}

public

static

boolean

valid(double mid)

return sum > 0;

}

和上一題乙個思路,但此題精度要求要高很多,按照上一題的while迴圈,wa了,測了下,大概迴圈14次左右,而此題迴圈50次,可以達到0.000000001的精度。注意記錄下下標。

**如下:

static class pair implements comparable

}static

double l;

static pair p;

static

int n;

static

int k;

public

static

void

main(string args) throws ioexception

double lf = 0.0;

double rt = max;

for (int i = 0; i < 50; ++i)

for (int i = 0; i < k; ++i) ans[i] = p[i].id;

stringbuilder sb = new stringbuilder();

arrays.sort(ans);

for (int i : ans)

system.out.println(sb.tostring().trim());

}static

int ans;

public

static

boolean

valid(double mid)

return sum > 0;

}

挑戰程式競賽系列(14) 2 6素數

詳細 可以fork下github上leetcode專案,不定期更新。練習題如下 非常easy,素數就是從最小數開始生成的,它的倍數都不是素數,應該說這是素數最本源的定義了。如下 艾氏篩法 public static void main string args throws numberformate...

VC2010 程式如何初始最大化

vc2010 程式如何初始最大化 vc2010 sp1做出來的程式與以前相比介面美觀了很多,但有些地方該的不符合習慣了,例如程式啟動自動最大化的問題,原來可以用 m pmainwnd showwindow sw showmaximized 實現,但2008這樣寫程式第一次會最大化,以後開啟程式,程式...

VC2010 程式如何初始最大化

vc2010 sp1做出來的程式與以前相比介面美觀了很多,但有些地方該的不符合習慣了,例如程式啟動自動最大化的問題,原來可以用 m pmainwnd showwindow sw showmaximized 實現,但2008這樣寫程式第一次會最大化,以後開啟程式,程式會成普通狀態,大小和所包含的for...