[BZOJ4004][JLOI2015]装备购买(贪心+高斯消元求线性基)
来源:互联网 发布:mac os x10.9 cdr下载 编辑:程序博客网 时间:2024/05/21 14:03
题目描述
传送门
题解
求极大线性无关向量组,使权值和最小
按权值从小到大排序,高斯消元求解线性基即可
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define LL long long#define Mod 1000000007#define N 505int n,m,cnt,ans,b[N];struct hp{LL a[N];int val;}ma[N];int cmp(hp a,hp b){ return a.val<b.val;}LL fast_pow(LL x,int p){ LL ans=1; for (;p;p>>=1,x=x*x%Mod) if (p&1) ans=ans*x%Mod; return ans;}LL inv(LL x){ return fast_pow(x,Mod-2);}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) { scanf("%lld",&ma[i].a[j]); ma[i].a[j]%=Mod; } for (int i=1;i<=n;++i) scanf("%d",&ma[i].val); sort(ma+1,ma+n+1,cmp); for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) if (ma[i].a[j]) { if (!b[j]) { b[j]=i; ++cnt; ans+=ma[i].val; break; } else { LL t=ma[i].a[j]*inv(ma[b[j]].a[j])%Mod; for (int k=j;k<=m;++k) ma[i].a[k]=((ma[i].a[k]-ma[b[j]].a[k]*t%Mod)%Mod+Mod)%Mod; } } printf("%d %d\n",cnt,ans);}
0 0
- [BZOJ4004][JLOI2015]装备购买(贪心+高斯消元求线性基)
- 【BZOJ4004】【JLOI2015】装备购买 线性基
- 【bzoj4004】 JLOI2015装备购买 拟阵+线性基
- BZOJ4004: [JLOI2015]装备购买
- 【JLOI2015】bzoj4004 装备购买
- bzoj4004 [JLOI2015]装备购买
- 4004: [JLOI2015]装备购买 贪心+线性基
- 「BZOJ4004」「JLOI2015」装备购买
- [高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
- BZOJ 4004 装备购买(贪心+线性基)
- 4004: [JLOI2015]装备购买
- BZOJ 4004 [JLOI2015]装备购买 拟阵+极大线性无关组
- [JLOI2015]装备购买 解题报告
- bzoj 4004: [JLOI2015]装备购买
- BZOJ 4004: [JLOI2015]装备购买
- BZOJ 4004: [JLOI2015]装备购买
- SHU 购买装备 贪心+二分
- SHU OJ 420 购买装备(假装背包,其实贪心)
- 在 Ubuntu 12.10 中使用 Virtualbox 安装 Win7虚拟机
- 蓝桥杯-串的处理
- <JAVA练习>02——函数(打印九九乘法表)
- java 去掉html标签 使用正则表达式删除HTML标签。
- IAR中创建BLE/Zigbee新项目
- [BZOJ4004][JLOI2015]装备购买(贪心+高斯消元求线性基)
- linux下线程通过signal通信实例
- Base64编码简介
- ubuntu设置静态ip
- 单元测试-必要性
- web service开发时,wsdl2java 客户端代码的生成
- My97DatePicker日期插件
- android之ScrollView里嵌套ListView
- IEnumerable<T>类型直接转换成DataTable