description
有n位同學,每位同學都參加了全部的minput門課程的期末考試,都在焦急的等待成績的公布。
第i位同學希望在第ti
天或之前得知所有課程的成績。如果在第ti
天,有至少一門課程的成績沒有公布,他就會等待最後公布成績的課程公布成績,每等待一天就會產生c
不愉快度。
對於第i門課程,按照原本的計畫,會在第bi
天公布成績。
將負責課程i的部分老師調整到課程 j,調整之後公布課程i成績的時間推遲一天,公布課程j成績的時間提前一天;每次操作產生a
不愉快度。
增加一部分老師負責學科i,這將導致學科i的出成績時間提前一天;每次操作產生b
不愉快度。
上面兩種操作中的引數i,j均可任意指定,每種操作均可以執行多次,每次執行時都可以重新指定引數。
現在希望你通過合理的操作,使得最後總的不愉快度之和最小,輸出最小的不愉快度之和即可。
第一行三個非負整數xyz,描述三種不愉快度,詳見【題目描述】;output第二行兩個正整數n,m,分別表示學生的數量和課程的數量;
第三行 個正整數ti
,表示每個學生希望的公布成績的時間;
第四行 個正整數bi,表示按照原本的計畫,每門課程公布成績的時間。
輸出一行乙個整數,表示最小的不愉快度之和。sample input 1
sample output 1100 100 2
4 55 1 2 3
1 1 2 3 3
6sample input 2
sample output 23 5 4
5 6
1 1 4 7 8
2 3 3 1 8 2
33
hint
a,b<=1e9,c<=1e16,n,m,bi,ti剛向cbx頹標籤做完宅男計畫完之後做的這道題,所以做得比較水。<=1e5
但是這類三分的題還是需要寫乙個題解來記錄一下的。
這題其實看了標籤之後就沒什麼意思了?
首先,最終對答案產生影響的就是出分最晚的那一科的時間,我們把這個作為費用函式的引數。
呃,比較顯然,如果你把出成績的天數推遲地太晚,那麼學生受不了不滿意度會很高。
但是如果你讓老師加班出分太早,那麼老師受不了不滿意度也會很高。
所以可以嗅到單峰函式的味道了嗎?
暫時不會證明它的確是乙個嚴格的單峰函式。網上也沒有。。。
暫且這麼理解。反正也沒有反例。實在不行你打乙個模擬退火。先繼續讓我講下去。。。
那麼現在我們就可以三分答案了,每次用o(n+m)的複雜度統計總的不滿意度,三分即可。
至於怎麼統計,還好吧?統計那些出分早的學科一共能派出多少老師支援其它學科設為a,再統計出分晚的學科達到那個天數需要多少援助為b。
那麼我們就是要用a個**為a的物品,無數個**為b的物品,買b件的最小代價。
稍微分類討論一下不成問題。
然後對於已經確定的天數,再列舉每乙個同學統計不滿意度,這也不用多說。
那麼就沒什麼問題了吧?
1 #include2 #include3但是還沒有完using
namespace
std;
4#define int long long
5int a,b,c,n,m,w[100005],re[100005];6
long
double q(int
d)13
signed main()
好像還有一種做法,更加草率。
因為統計不滿意度時,這其實是乙個序列上的問題,前驅後繼字首和什麼的,可以用資料結構/stl什麼的來達到log複雜度來統計答案的效果。
好像需要的操作也就是查b陣列裡有多少數比mid大,它們的和是多少,小的同理。sort後字首和與lower_bound可以解決。
以及要查t陣列裡比mid大的和它們的和,依舊字首和。然後好像就沒了,的確可以log?
沒有實測,可能是我在yy?
那麼就可以o(1e6)列舉所有的天數了,就沒有三分答案了,直接取min就行。這個相較於那個沒有被證明的單峰函式更可靠一些?
但是我沒有打。。。
哦對了值得注意的一點是運算過程中那個c那麼大很可能會爆long long,推薦用double。
因為無論是什麼資料答案都不會超過long long,所以用double計算後如果太大直接捨棄就好,否則再細算。
宅男計畫 單峰函式三分
description 自從迷上了拼圖,jyy 就變成了個徹底的宅男。為了解決溫飽問題,jyy 不得不依靠叫外賣來維持生計。外賣店一共有n種食物,分別由1到n編號。第i種食物有固定的價錢pi和保質期si。第i種食物會在si天後過期。jyy 是不會吃過期食物的。比如 jyy 如果今天點了乙份保質期為0...
三分求單峰函式最值
二分可以求解單調函式最值,模擬不難想到三分可以求解單峰函式。何為單峰函式,如果函式f x 在區間 a,b 上只有唯一的最大值點 或最小值點 c,而在最大值點 或最小值點 c的左側,函式單調增加 減少 在點c的右側,函式單調減少 增加 則稱這個函式為區間 a,b 上的單峰函式 如果函式f x 在區間 ...
Luogu P3745期末考試(三分)
題目鏈結 我是怎麼把 期末考試 在本地寫成 假期計畫 的 qwq?本題把學生和卷子都排個序,按出成績最晚時間三分。三分之後可以o n 的時間統計答案,因為修改卷子出成績的時間可以貪心計畫。這裡著重了解一下為什麼可以三分。我們可以發現隨著出成績的時間推遲,學生的不偷稅愉悅度肯定是越來越大的,換句話說這...