裝備購買
solution:
貪心+線性基。
由於線性基能夠錶出的線性空間和原數表出的線性空間相同,
所以只需要在高斯消元求線性基的過程中貪心選取**最低的行(向量)即可。
code:
#include#include#include#include#include#define rg register
#define il inline
#define ll long long
#define ldb long double
using namespace std;
il int gi()
while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=getchar();
return w?-x:x;
}const int n=510;
const ldb eps=1e-6;
ldb a[n][n];
int n,m,cnt,ans,c[n];
il void gauss_jordan()
for(j=i+1;j<=m;++j) a[cnt][j]/=a[cnt][i];
a[cnt][cnt]=1.0;
for(j=1;j<=n;++j) }}
int main()
BZOJ 4004 裝備購買(貪心 線性基)
description 臉哥最近在玩一款神奇的遊戲,這個遊戲裡有 n 件裝備,每件裝備有 m個屬性,用向量zi aj,am 表示 1 i n 1 j m 每個裝備需要花費ci 現在臉哥想買一些裝備,但是臉哥很窮,所以總是盤算著怎樣才能花盡量少的錢買盡量多的裝備。對於臉哥來說,如果一件裝備的屬效能用購...
bzoj 4004 裝備購買(線性基)
反思 犯了乙個錯誤,學了高斯消元後想在高斯消元的過程中得到解,但在高斯消元的過程中貪心並不是正解,似乎會影響到後面的決策使得總花費不是最優。這題要用線性基,線性基求基的過程是列舉每乙個向量,看這個向量能加到哪一行,如果當前行向量已存在那麼對這個向量進行初等變換使得向量該位置為0,這樣會保證線性基的每...
元素 線性基,貪心
有n nn塊石頭,每塊石頭有乙個序號和乙個魔力值,你可以使用任意數量的石頭,但你使用的石頭中任意幾塊異或起來不能為0 00,求可得到的最大總魔力值。貪心顯然我們貪心地將val valva l值更大的放在前面插入到線性基中,因此我們只需要對所以物品按val valva l值降序排序即可,然後線性基基本...