a154: 工作計畫
標籤 :
通過比率 : 3人/4人 ( 75% ) [非即時]
評分方式:
Special

最近更新 : 2019-09-13 18:48

內容

ICPC管理者計畫一個持續$n$天的新專案。這個專案一共有$m$個人參加(編號$1\sim m$)。在第$j (1\le j\le n)$天需要恰好$d_j$個人工作,且第$i (1\le i\le m)$個人共需要工作恰好$w_i$天。

為了增加專案的工作效率,工作計畫須符合以下兩個條件:
    1. 每個人一旦開始工作就必須要連續工作恰好$w$天。
    2. 每個人在完成一段工作後,需要休息至少$h$天。

ICPC管理者想要找出一份工作計畫,分配每個人的工作時間,使得上述條件皆能滿足(第$j$天恰好$d_j$人工作、第$i$個人共工作$w_i$天、每個人的每段工作時間都是連續$w$天工作接著至少$h$天休息)。

舉例來說,假設有一份專案持續$n=9$天,且一共有$m=4$個人參與,且令$w=2,h=1,(w_1,W_2,W_3,W_4)=(4,4,6,2),(d_1,d_2,d_3,d_4,d_5,d_6,d_7,d_8,d_9)=(1,3,2,1,2,1,1,3,2)$。下表示一個符合條件的工作規畫表,其中第$i$列代表第$i$個人且第$j$行代表第$j$天,若第$i$列$j$行為$1$代表第$i$個人在第$j$天有工作,反之若為$0$代表沒工作。

給你$n,m,w,h,w_i$(保證是w的倍數)$,d_j$,請寫一個程式找出一種符合的工作計畫表。

輸入說明

輸入第一行有四個正整數$m,n,w,h (1\le m\le 2000,1\le n\le 2000,1\le w,h\le n)$。

下一行有$m$個正整數,其中第$i$個正整數代表$w_i (1\le w_i\le n , w|w_i)$。

再下一行有$n$個非負整數,其中第$j$個整數代表$d_j (1\le d_j\le m)$。

輸出說明

如果可以找出一組符合條件的的工作計畫表,在第一行輸出一個數字$1$,並接著輸出$m$行,其中第$i$行包含$w_i/w$個數字,這些數字代表計畫表中第$i$個人每段工作的開始時間(依時間排序)。如果有多種符合條件的工作計畫表,輸出任一種即可。

若無法找出滿足條件的計畫表,則僅輸出一行$-1$。

範例輸入
範例測資1:
4 9 2 1
4 4 6 2
1 3 2 1 2 1 1 3 2

範例測資2:
4 7 2 2
4 4 4 2
1 3 2 1 3 3 1
範例輸出
範例測資1:
1
1 8
2 7
2 5 8
4

範例測資2:
-1
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (4%): 1.0s , <1M
公開 測資點#1 (4%): 1.0s , <1M
公開 測資點#2 (4%): 1.0s , <1M
公開 測資點#3 (4%): 1.0s , <1M
公開 測資點#4 (4%): 1.0s , <1M
公開 測資點#5 (5%): 1.0s , <1M
公開 測資點#6 (5%): 1.0s , <1M
公開 測資點#7 (5%): 1.0s , <1M
公開 測資點#8 (5%): 1.0s , <1M
公開 測資點#9 (5%): 1.0s , <1M
公開 測資點#10 (5%): 1.0s , <1M
公開 測資點#11 (5%): 1.0s , <1M
公開 測資點#12 (5%): 1.0s , <1M
公開 測資點#13 (5%): 1.0s , <1M
公開 測資點#14 (5%): 1.0s , <1M
公開 測資點#15 (5%): 1.0s , <1M
公開 測資點#16 (5%): 1.0s , <1M
公開 測資點#17 (5%): 1.0s , <1M
公開 測資點#18 (5%): 1.0s , <1M
公開 測資點#19 (5%): 1.0s , <1M
公開 測資點#20 (5%): 1.0s , <1M
提示 :

其中範例測資1的範例輸出並非唯一的解。

標籤:
出處:
[管理者:
giver (垃圾)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」