HDU 4341 Gold miner 分組揹包

2021-09-06 05:38:46 字數 719 閱讀 9892

這裡有多個點與原點的連線共線的話,那麼需要對其進行並組,將前乙個作為單獨的乙個,把前兩個作為單獨的乙個...最後直接分組揹包就可以了。

**如下:

#include #include 

#include

#include

#define maxn 205

using

namespace

std;

intn, m, cnt[maxn], vis[maxn], idx;

int f[40005

];struct

node //

對y軸進行排序,這樣保證能夠先得到最近的點

}e[maxn];

struct

team

p[maxn][maxn];

bool inline(int a, int

b)void

init()}}

}}void

solve()}}

}printf(

"%d\n

", f[m]);

}int

main()

sort(e+1, e+1+n);

printf(

"case %d:

", ++ca);

init();

solve();

}return

0;

}

hdu4341 Gold miner 分組揹包dp

題意 和 礦工差不多。人在 0,0 有n種金,遊戲時間為t。告訴你每種金的位置 x,y 獲得該金需要的時間的t,以及它的 價值。且若人和多塊金子共線時,只能先取最近的金子。問在遊戲時間內可獲得最大價值。思路 對於共線的金,我們將其分為一組,並按照距 0,0 的距離排序,那麼選該點的價值為前面所有的價...

HDU 4341 Gold miner(分組揹包)

題目鏈結 gold miner 目標是要在規定時間內獲得的價值總和要盡可能大。我們先用並查集把斜率相同的物品分在同乙個組。這些組裡的物品按照y座標的大小公升序排序。如果組內的乙個物品被選取了,那該組排在他前面的所有物品肯定被選取了。那麼我們對每個組的所有物品,對價值和代價分別求字首和。那麼選了3號,...

HDU 4341 Gold miner 分組揹包

這裡有多個點與原點的連線共線的話,那麼需要對其進行並組,將前乙個作為單獨的乙個,把前兩個作為單獨的乙個.最後直接分組揹包就可以了。如下 include include include include define maxn 205 using namespace std intn,m,cnt max...