首页 > 其他 > 详细

bzoj4004: [JLOI2015]装备购买

时间:2019-03-10 16:21:14      阅读:126      评论:0      收藏:0      [点我收藏+]

杂七杂八的题屯这边我觉得海星。

这里可能变成个屯代码的了。

传送门

题解

技术分享图片
//Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=505;
typedef long long LL;
typedef long double db;
using namespace std;
int n,m,ans1,ans2;

template<typename T> void read(T &x) {
    char ch=getchar(); T f=1; x=0;
    while(ch!=-&&(ch<0||ch>9)) ch=getchar();
    if(ch==-) f=-1,ch=getchar();
    for(;ch>=0&&ch<=9;ch=getchar()) x=x*10+ch-0; x*=f;
}

#define eps 1e-6
int dcmp(db x) { return fabs(x)<eps?0:(x>0?1:-1); }

struct vc{
    db a[N]; int val;
    friend bool operator <(const vc&A,const vc&B) {
        return A.val<B.val;
    }
}p[N];
db d[N][N];

int main() {
    //freopen("1.in","r",stdin);
    //freopen("1.out","w",stdout);
    read(n); read(m);
    For(i,1,n) For(j,1,m) read(p[i].a[j]);
    For(i,1,n) read(p[i].val); 
    sort(p+1,p+n+1);
    For(x,1,n) {
        For(j,1,m) if(dcmp(p[x].a[j])!=0) {
            if(dcmp(d[j][j])==0) {
                For(k,j,m) d[j][k]=p[x].a[k];    
                ans1++; ans2+=p[x].val; break;
            }
            else Rep(k,m,j) p[x].a[k]-=p[x].a[j]/d[j][j]*d[j][k];
        }
    }
    printf("%d %d\n",ans1,ans2);
    Formylove;
}
View Code

 

bzoj4004: [JLOI2015]装备购买

原文:https://www.cnblogs.com/Achenchen/p/10505677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!