第四周作業

2021-10-04 03:55:29 字數 2369 閱讀 8841

問題描述

已知有n項作業的ddl和對應的分值,一天只僅且只能完成一項作業,ddl前未完成的作業扣取作業對應的分值。請合理規劃完成各項作業,以使被扣取的分值最少。

思路使用貪心策略。

因此首先將n項作業按作業分值進行排序,然後按從大到小的順序進行分配。此外為了確保當前的選擇對其他作業的選擇影響最小,就需要選擇z在該項作業的ddl之前最近的空閒時間完成該項作業。如果找不到可以放置該作業的空閒時間,那麼就說明這項作業完成不了,那麼就將該作業對應的分值扣除。

**

#include

#include

using

namespace std;

struct dl

;bool

compare

(const dl &a,

const dl &b)

dl *d;

bool c[

1000000];

void

doo(

)int ans =0;

for(

int i =

0; i < n; i++

) cin >> d[i]

.t;for

(int i =

0; i < n; i++

)sort

(d, d + n, compare)

;for

(int i =

0; i < n; i++)}

} cout << ans << endl;

delete

d;}int

main()

題目

有四個數列 a,b,c,d,每個數列都有 n 個數字。現從每個數列中各取出乙個數,求共有多少種方案使得 4 個數的和為 0。

注意當乙個數列中有多個相同的數字的時候,把它們當做不同的數對待。

思路採用分而治之的方式。

當四個數列按0-4分開,即不分開是,複雜度為o(n^4)

當四個數按1-3分開,複雜度為o(n^3)

當四個數按2-2分開,複雜度為o(n^2 log(n))

可以發現,二分的方式最為快速。

解題方法:將ab一組,cd一組,計算出a+b,c+d並存在陣列裡,然後對a+b中的每個元素,在c+d中二分查詢它的相反數。

**

#include

#include

int n;

int*a,

*b,*x1,

*x2,

*x3,

*x4;

intfind

(int v)

return0;

}int

main()

std::

sort

(a, a + n * n)

; std::

sort

(b, b + n * n)

;int ans =0;

for(

int i =

0; i < n * n; i++

)printf

("%d\n"

, ans)

;//fclose(stdin);

}

問題

給定乙個 n 個數的陣列 a[n],並用這個陣列生成乙個新陣列 ans[n]。新陣列定義為對於任意的 i, j 且 i != j,均有 ans = abs(a[i] - a[j]),1 <= i < j <= n。試求出這個新陣列的中位數,中位數即為排序之後 (len+1)/2 位置對應的數字,』/』 為下取整。

思路二分答案問題。

為了求出ans陣列的中位數,如果暴力求指出ans陣列,執行時間無疑會超過限制,因此需要在不計算出ans陣列的情況下計算出ans陣列的中位數。

將求解答案轉化為對答案p判定。且如果判定p《中位數,則中位數必然比p大,滿足單調性,可以對p來二分。

那麼我們只需要計算a[ j ] - a[ i ] <= p的元素對數即可,又因為a[ j ] <= a[ i ] + p。因此我們在p已知的情況下,查詢滿足條件的 a[ j ] 的個數即可。先對陣列進行排序,在這過程中,如果a[j]<=p+a[i],則滿足的範圍一定比j要大(滿足單調性),因此,任然可以使用二分查詢j。

**

#include

#include

int n, m;

int*x;

bool

find

(int p)

if(sum > m)

return1;

else

return0;

}int

main()

printf

("%d\n"

, l)

;delete

x;}}

第四周作業

第四周實驗作業 1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 1.1求自然對數e的近似值 include using namespace std int main cout 1.2求圓周率 的近似值 include using name...

第四周作業

實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...

第四周作業

實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...