隨手練—— 洛谷-P2945 Sand Castle(貪心)
阿新 • • 發佈:2019-02-11
ios cas sin usaco code algo targe tps cout
題目鏈接:https://www.luogu.org/problemnew/show/P2945 (原題 USACO)
要求錢最少,就是試著讓M和B的離散程度最小(我自己腦補的,就是總體更接近,我不知道數學上這樣該不該叫離散程度),那顯而易見就是升序。
一開始想著可能有這種情況,有高度相同,但是對不上的,其實是沒有差別的。
原高度:2 2 3 4 5
改高度:2 3 4 5 6
證明看這個:https://www.cnblogs.com/Leohh/p/7648607.html
#include<iostream> #include<algorithm> using namespace std;int main() { int res = 0 , N, X, Y; int *M, *B; cin >> N >> X >> Y; M = new int[N]; B = new int[N]; for (int i = 0; i < N; i++) cin >> M[i] >> B[i]; sort(M, M + N); sort(B, B + N); for (int i = 0; i < N; i++){ if (M[i] < B[i]) res += (B[i] - M[i])*X;else res += (M[i] - B[i])*Y; } cout << res << endl; return 0; }
隨手練—— 洛谷-P2945 Sand Castle(貪心)