bzoj4004: [JLOI2015]装备购买
杂七杂八的题屯这边我觉得海星。
这里可能变成个屯代码的了。
//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; }