一本通題庫-1425
libreoj-10003
vjudge
注意:libreoj和一本通題庫題意相同,但資料範圍不同。**以一本通題庫為準。
某工廠收到了 n
nn 個產品的訂單,這 n
nn 個產品分別在 a、b
a、ba、
b 兩個車間加工,並且必須先在 a
aa 車間加工後才可以到 b
bb 車間加工。
某個產品 i
ii 在 a,b
a,ba,
b 兩車間加工的時間分別為ai,
bi
a_i,b_i
ai,bi
。怎樣安排這 n
nn 個產品的加工順序,才能使總的加工時間最短。
這裡所說的加工時間是指:從開始加工第乙個產品到最後所有的產品都已在 a,b
a,ba,
b 兩車間加工完畢的時間。
第一行僅—個資料 n
nn ,表示產品的數量;
接下來 n
nn 個資料是表示這 n
nn 個產品在 a
aa 車間加工各自所要的時間;
最後的 n
nn 個資料是表示這 n
nn 個產品在 b
bb 車間加工各自所要的時間。
第一行乙個資料,表示最少的加工時間;
第二行是一種最小加工時間的加工順序。
5
3 5 8 7 10
6 2 1 4 9
34
1 5 4 2 3
對於100
10010
0%的資料, 0
<
n<
10000
0 < n < 10000
0<
n<10
000,所有數值皆為整數。
貪心。要使總加工時間最少就是讓車間的空閒時間最少,就要把在a車間加工所需時間最少的產品先加工,把在b車間加工所需時間最少的產品後加工。
設a
ia_i
ai為第i
ii個產品在a
aa車間加工所需時間,b
ib_i
bi為第i
ii個產品在b
bb車間加工所需時間。
貪心策略: 令mi.
nu
mm_i.num
mi.nu
m=min(
ai,b
i)
min(a_i,b_i)
min(ai
,bi
),將m從小到大排序,從第乙個開始處理,如果mi=
ai
m_i=a_i
mi=ai
,將它排在從頭開始加工的產品後面,如果mi=
bi
m_i=b_i
mi=bi
,則將它排在從尾開始加工的產品前面。
#pragma gcc optimize(3,"ofast","inline")
#pragma g++ optimize(3,"ofast","inline")
#include
#include
#include
#include
#include
#define ri register int
#define re(i,a,b) for(ri i=a; i<=b; i++)
#define ms(i,a) memset(a,i,sizeof(a))
#define max(a,b) (((a)>(b)) ? (a):(b))
#define min(a,b) (((a)<(b)) ? (a):(b))
using
namespace std;
typedef
long
long ll;
intconst n=
1e4+5;
struct node m[n]
;int n;
int a[n]
,b[n]
,f[n]
;int
main()
for(
int i=
1; i<=n-
1; i++
)for
(int j=i+
1; j<=n; j++)if
(m[i]
.num>m[j]
.num)
int l=
0,r=n+1;
for(
int i=
1; i<=n; i++
)int ta=
0,tb=0;
for(
int i=
1; i<=n; i++
)printf
("%d\n"
,tb)
;for
(int i=
1; i<=n; i++
)printf
("%d "
,f[i]);
printf
("\n");
return0;
}
一本通 1 1 例 4 加工生產排程
題目傳送門 這道題是johnson雙流水線排程演算法的基礎題。本題是要求乙個加工順序使得總的加工時間最少,而要使加工時間最少,就是讓各車間的空閒時間最少。一旦a車間開始加工,便會不停地進行加工 我們不要去管車間是否能夠一直生產,因為他們有三班,可以24時間不停地運轉 關鍵是b車間在生產的過程中,有可...
一本通 1 1 例 1 活動安排
題目link 貪心即可,將活動按右端點排序,排序後能選則選。o n 證明 首先對於乙個前面都為最優序列的前提下,如果對於乙個活動 a 使它發生是一種最優序列,然後再對於另乙個活動 b 它的結束時間比 a 早,並且開始時間也滿足條件,那麼根據貪心就可以選它,因為它既合法又是一種最優序列。1 inclu...
1425 例題4 加工生產排程
1425 例題4 加工生產排程 時間限制 1000 ms 記憶體限制 65536 kb 提交數 2196 通過數 571 題目描述 某工廠收到了 n 個產品的訂單,這 n 個產品分別在 a b 兩個車間加工,並且必須先在 a 車間加工後才可以到 b 車間加工。某個產品 i 在 a,b 兩車間加工的時...