第一眼喜聞樂見的**問題dp可以暴力,然鵝時間不允許。
於是考慮怎麼貪。
這篇題解說得很生動了。
因為每支**都有**的潛力所以肯定都加在優先佇列裡。
然後考慮的是哪些需要加入兩次。這是我第二次見到類似的手法。當它比優先佇列隊首要大,可以賣,但是因為後面的還沒讀所以不知道是不是最優。那就先賣著,錢拿了,然後標記上它可能是個軸承,等到它成了隊首(顯然這時更便宜的**已經都跟「大客戶」配對完走掉了,或者至少跟軸承嫁接了)且讀到了更好的賣家,那它的軸承作用成功完成任務,當前這個更好的賣家作為接盤俠被標記為軸承。
注意標記不是bool的,因為同乙個數字可能出現很多次,用int計數。
1#pragma comment(linker, "/stack:1024000000,1024000000")
2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include
13 #include 14 #include 15 #include 16 #include
17 #include 18 #include 19 #include 20 #include 21 #include 22
#define init(a, b) memset(a, b, sizeof(a))
23#define rep(i, a, b) for (int i = a; i <= b; i++)
24#define irep(i, a, b) for (int i = a; i >= b; i--)
25using
namespace
std;
2627 typedef double
db;28 typedef long
long
ll;29 typedef unsigned long
long
ull;
30 typedef pairp;
31const
int inf = 0x3f3f3f3f;32
const ll inf =1e18;
3334 template void read(t &x)
4344 template void
write(t x)
4950 template void
writeln(t x)
5455
const
int maxn = 1e5 + 5;56
intt, n, day;
57ll ans;
58 mapmark;
5960
intmain()
78q.push(x);79}
80 printf("
%lld %d\n
", ans, day * 2
);81}82
return0;
83 }
hdu 4864 Task 貪心 技巧
題目鏈結 一道很有技巧的貪心題目。題意 有n個機器,m個任務。每個機器至多能完成乙個任務。對於每個機器,有乙個最大執行時間xi和等級yi,對於每個任務,也有乙個執行時間xj和等級yj。只有當xi xj且yi yj的時候,機器i才能完成任務j,並獲得 500 xj 2 yj金錢。問最多能完成幾個任務,...
10 儲存HDU 貪心
description 話說上回講到海東集團面臨內外交困,公司的元老也只剩下xhd夫婦二人了。顯然,作為多年拼搏的商人,xhd不會坐以待斃的。一天,當他正在苦思冥想解困良策的時候,突然想到了自己的傳家寶,那是公司成立的時候,父親作為賀禮送來的乙個錦囊,徐父當時交代,不到萬不得已的時候,不要開啟它。現...
hdu 迷瘴 貪心
其實就是一道簡單貪心題,但第一次用分數做wa了,改用整數就對,也許是自己不夠細心,呵呵 如果是不夠細心的人,建議還是用整數吧 1 include 2 include 3 include 4using namespace std 5int cmp const void a,const void b 6...