零件加工(貪心)

2021-08-02 12:49:56 字數 2115 閱讀 9773

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

工匠小k最近有n個零件需要加工。每個零件都需要ti天的時間來完成,每個零件每延遲一天加工都要繳納一定的罰金si。延遲的天數為從今天算起到該工作開始的那天,第乙個零件加工沒有罰金。現在小k想知道怎樣安排加工順序可以使他要交的罰金最少,最少是多少。

這個數可能會很大,請輸出這個數對m取模後的結果。

輸入 輸入檔名為process.in。

輸入第一行為乙個整數n,表示需要加工的零件總數。

第二行為乙個整數m,表示答案要對m取模。

第3~n+2行,每行兩個整數ti和si。

輸出 輸出檔名為process.out。

輸出僅一行,乙個整數,表示小k最少要繳納的罰金對m取模的結果。

樣例輸入

process.in

2 100

2 33

33 2

process.out

4process.in

4 100

3 3

6 4

2 2

8 5

process.out

81 樣例輸出

【輸入輸出樣例解釋1】

先加工第乙個,需要2天時間,再加工第二個。需要繳納的罰金為2×2=4。

【輸入輸出樣例解釋2】

如果按照1→2→3→4的順序進行加工,需要繳納的罰金為0×3+3×4+(3+6)×2+

(3+6+2)×5=85;

最佳方案是3→1→2→4,此時需要繳納的罰金為0×2+2×3+(2+3)×4+(2+3+6)×5=81。

提示 【資料範圍】

對於40%的資料,0< n≤10,000,0< ti,si≤10,000;

對於80%的資料,0< n≤100,000,0< ti,si≤2×10^9,0< m≤10^8;

對於100%的資料,0< n≤100,000,0< ti,si≤2×10^9,0< m≤10^18。

** 2013學軍中學noip模擬day1

此題我們可以使用貪心,我們可以發現對於第i 個零件和第i+1個零件有

若i在i+1前則co

st=t

[i]∗

s[i+

1]若i在i+1後則co

st′=

t[i+

1]∗s

[i]

若cos

tst′ 則i在i+1前花費更小,我們將t[

i]∗s

[i+1

]i+1]

∗s[i

] 變換等式,則為t[

i]s[

i]i+1]

s[i+

1]則我們可以按這個分式來排序(為了使得前面的數都比後面的優),但是為了避免精度誤差我們就按t[

i]∗s

[i+1

]i+1]

∗s[i

] 來排序

我們可以證明這為什麼是最優的(當前的陣列是已排序完的):

設我們已經加工了x-1個零件,現在我們要加工第x個零件。

則對於x若x+1更優,但這是不可能的因為我們已經按照t[

i]∗s

[i+1

]i+1]

∗s[i

] 來排序了。

同時我們也可以得到x+1比x+2更優,以此類推可以發現x比後面的都優。

tip:此題直接乘會爆long long,所以我們可以用快速乘的方法來避免這個問題。

#include

#include

#include

using

namespace

std;

int n;

long

long m;

struct node

a[150000];

bool cmp(node a,node b)

long

long cheng(long

long a,long

long b)

return ans;

}int main()

printf("%lld\n",ans);

return

0;}

零件加工 貪心 題解

時間限制 1 sec 記憶體限制 128 mb 提交 24 解決 7 提交 狀態 討論版 命題人 外部匯入 題目描述 工匠小k最近有n個零件需要加工。每個零件都需要ti天的時間來完成,每個零件每延遲一天加工都要繳納一定的罰金si。延遲的天數為從今天算起到該工作開始的那天,第乙個零件加工沒有罰金。現在...

加工零件 execution

題面 有 n 個零件需要加工。零件之間有 m 個限制,x y 表示 x 要在 y 之前先加工完。每個零件的加工時間都是 1。現在有無限個多個工具機,在滿足限制條件的情況下,零件可以同時加工。求加工完所有零件最少需要多少時間,然後還要求出在時間最少的前提下,最少需要多少工具機。資料保證有解。對於 10...

NOIP 加工零件 題解

加工零件凱凱的工廠正在有條不紊地生產一種神奇的零件,神奇的零件的生產過程自然也很神奇。工廠裡有 nn 位工人,工人們從 1 sim n1 n 編號。某些工人之間存在雙向的零件傳送帶。保證每兩名工人之間最多隻存在一條傳送帶。如果 xx 號工人想生產乙個被加工到第 l l gt 1 l l 1 階段的零...