time limit: 20 sec memory limit: 512 mb
submit: 936 solved: 426
[submit][status][discuss]
有n位同學,每位同學都參加了全部的m門課程的期末考試,都在焦急的等待成績的公布。第i位同學希望在第ti天
或之前得知所.有.課程的成績。如果在第ti天,有至少一門課程的成績沒有公布,他就會等待最後公布成績的課程
公布成績,每等待一天就會產生c不愉快度。對於第i門課程,按照原本的計畫,會在第bi天公布成績。有如下兩種
,公布課程y成績的時間提前一天;每次操作產生a不愉快度。2.增加一部分老師負責學科z,這將導致學科z的出成
績時間提前一天;每次操作產生b不愉快度。上面兩種操作中的引數x,y,z均可任意指定,每種操作均可以執行多次
,每次執行時都可以重新指定引數。現在希望你通過合理的操作,使得最後總的不愉快度之和最小,輸出最小的不
愉快度之和即可
第一行三個非負整數a,b,c,描述三種不愉快度,詳見【問題描述】;
第二行兩個正整數n,m(1≤n,m≤105),分別表示學生的數量和課程的數量;
第三行n個正整數ti,表示每個學生希望的公布成績的時間;
第四行m個正整數bi,表示按照原本的計畫,每門課程公布成績的時間。
1<=n,m,ti,bi<=100000,0<=a,b,c<=100000
輸出一行乙個整數,表示最小的不愉快度之和。
100 100 2
4 55 1 2 3
1 1 2 3 3
6由於調整操作產生的不愉快度太大,所以在本例中最好的方案是不進行調整; 全部
5 的門課程中,最慢的在第 3 天出成績;
同學 1 希望在第 5 天或之前出成績,所以不會產生不愉快度;
同學 2 希望在第 1 天或之前出成績,產生的不愉快度為 (3 - 1) * 2 = 4;
同學 3 希望在第 2 天或之前出成績,產生的不愉快度為 (3 - 2) * 2 = 2;
同學 4 希望在第 3 天或之前出成績,所以不會產生不愉快度;
不愉快度之和為 4 + 2 = 6 。
存在幾組資料,使得c = 10 ^ 16
黑吉遼滬冀晉六省聯考
考場上還是靜不下心來
總感覺這題是個dp
然後直接棄掉了。
其實還是挺簡單的。
我們欽定乙個試卷被批完的最晚時間
然後通過二分+字首和計算出學生的不愉快度
再利用二分+字尾和計算出讓最後乙個被批完的試卷的時間滿足要求的不愉快的
兩者求和取最小值就可以了
這道題的關鍵是看出學生不滿意度和試卷被批完的時間之間的單調關係
然後要想到列舉時間
#include#include#include
#define int unsigned long long
using
namespace
std;
const
int maxn=1e5+10
;const
int inf=1e19;
inline
intread()
while(c>='
0'&&c<='9')
return x*f;
}int
a,b,c;
intn,m;
intt[maxn],b[maxn];
int sumt[maxn],sumb[maxn];//
t的字首與b的字尾
int limit,ans=inf;
main()
l=1,r=m;
while(l<=r)
if(ans1!=0) now+=(ans1*i-sumt[ans1])*c;
if(ans2!=0
)
}ans=min(ans,now);
}printf(
"%lld
",ans);
return0;
}
bzoj 4868 Shoi2017 期末考試
題意 略 一開始xjb貪心了好長時間.然後發現可以從後往前列舉最晚時間,o 1 得到最小代價 確定最晚時間後就可以知道哪些可以用a啦!一定要考慮這種變化變成不變的思想!include include include include using namespace std typedef long l...
Bzoj3562 神器化合物 Shoi 2014
ac通道 分析 若把每乙個原子看作乙個節點,將化學鍵看作一條邊,那麼這個題目要求的 分子的個數 很容易就可以看出是求圖中聯通塊的個數。求聯通塊的個數,可以使用並查集。可如何求出每一步的聯通塊的個數呢?可以知道,當連上一條邊時,若此邊連線的是兩個不同的聯通塊,那麼分子個數就會減一 當刪去一條邊時,若刪...
BZOJ 3566 SHOI2014 概率充電器
題目 題意 給定樹形結構的n個元件,每個元件有一定概率自己充電,還有一定概率通過某條邊給其他元件充電,求充電的元件期望個數。n 500000 題解 樹形結構肯定能想到樹形dp,全樹對某點產生的貢獻一般可以通過一到兩遍樹形dp計算得出,本題所求期望等於每個元件被充電的概率之和。設f i 表示i被充電的...