zoukankan      html  css  js  c++  java
  • 洛谷P3265 [JLOI2015]装备购买(线性基+高斯消元)

    传送门

    不知道线性基是什么东西的可以看看蒟蒻的总结

    不难看出题目讲的就是线性基

    这种最小化权值的问题一般都是贪心的,就是按价值从低到高考虑每一个是否能选

    据说贪心的证明得用拟阵我不会

    据说这题是实数意义下的线性基我还是不会……据说得用高斯消元……

    所以直接上代码好了……

     1 //minamoto
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cmath>
     5 #define N 505
     6 #define eps 1e-6
     7 #define double long double
     8 #define ll long long
     9 using namespace std;
    10 struct node{
    11     int cost;double b[N];
    12     inline bool operator <(const node &b)const
    13     {return cost<b.cost;}
    14 }a[N];
    15 int cnt,sum,p[N],n,m;
    16 int main(){
    17     scanf("%d%d",&n,&m);
    18     for(int i=1;i<=n;++i)
    19     for(int j=1;j<=m;++j)
    20     scanf("%Lf",&a[i].b[j]);
    21     for(int i=1;i<=n;++i) scanf("%d",&a[i].cost);
    22     sort(a+1,a+1+n);
    23     for(int i=1;i<=n;++i)
    24     for(int j=1;j<=m;++j)
    25     if(fabs(a[i].b[j])>eps){
    26         if(!p[j]){p[j]=i,++cnt,sum+=a[i].cost;break;}
    27         double t=a[i].b[j]/a[p[j]].b[j];
    28         for(int k=j;k<=m;++k)
    29         a[i].b[k]-=a[p[j]].b[k]*t;
    30     }
    31     printf("%d %d
    ",cnt,sum);
    32     return 0;
    33 }
  • 相关阅读:
    2019.1.5JavaScript
    SQL常用删改增语句
    PHP连接数据库
    PHP数组函数
    PHP字符串常用函数
    PHP 类型判断方法
    jQuery效果
    jQuery特性
    倒计时
    判断浏览器及其内核
  • 原文地址:https://www.cnblogs.com/bztMinamoto/p/9720420.html
Copyright © 2011-2022 走看看