bzoj4004

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj4004相关的知识,希望对你有一定的参考价值。

线性基

构成线性基的个数是定的,所以我们对价值进行贪心就行了,根据拟阵那套理论,我们排个序,然后能塞进去就塞,这样就求出最小值了。

思维江化,只要是多维向量都能用线性基搞。

技术分享图片
#include<bits/stdc++.h>
using namespace std;
#define double long double
const double eps = 1e-5;
const int N = 1005;
int n, ans1, ans2, m;
int vis[N];
struct data {
    double p[N];
    int val;
    bool friend operator < (const data &a, const data &b) {
        return a.val < b.val;
    }
} a[N];
int main() 
{
    ios::sync_with_stdio(0);
    cin >> n >> m;
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= m; ++j)
            cin >> a[i].p[j];
    for(int i = 1; i <= n; ++i) 
        cin >> a[i].val;
    sort(a + 1, a + n + 1);
    for(int i = 1; i <= n; ++i) 
        for(int j = 1; j <= m; ++j) 
        {
            if(!vis[j])
            {
                if(fabs(a[i].p[j]) > eps) 
                {
                    vis[j] = i;
                    ans1 += a[i].val;
                    ++ans2;
                    break;  
                }   
            } 
            else
            {
                double t = a[i].p[j] / a[vis[j]].p[j];
                for(int k = 1; k <= m; ++k) a[i].p[k] -= t * a[vis[j]].p[k];
            }
        }
    printf("%d %d\n", ans2, ans1);
    return 0;
}
View Code

 

以上是关于bzoj4004的主要内容,如果未能解决你的问题,请参考以下文章

bzoj4004

bzoj4004 [JLOI2015]装备购买

BZOJ4004:[JLOI2015]装备购买——题解

BZOJ4004[JLOI2015]装备购买 贪心+高斯消元

Bzoj4004 [JLOI2015]装备购买

BZOJ_4004_[JLOI2015]装备购买_线性基