Luogu P3265 [JLOI2015]装备购买
好吧刚开始不知道自己在写什么,,,后来写了线性方程组,又过了一天一上午终于明白了。。。
当然题意很显然:求代价最小的极大线性无关组。
那就高斯消元(好吧刚开始我不会用它来解这道题qwq)
第一个循环是枚举消哪个元,即i; 然后去找有系数且代价最小的一行,特别地,如果所有行都没有系数,那么他就是自由元。。不计入答案;
然后就消就好了。。。
#include<cstdio>
#include<iostream>
#define R register int
using namespace std;
const int N=;
const long double eps=1E-;
long double a[N][N],c[N];
int n,m,k,cnt,ans;
inline bool ck0(double x) {return x<=eps&&x>=-eps;}
inline void Gauss() {
for(R i=;i<=m;++i) { R pos=;
for(R j=cnt+;j<=n;++j) if(!ck0(a[j][i])&&(pos==||c[pos]>c[j])) pos=j;
if(pos==) continue; ++cnt,ans+=c[pos];
if(pos!=cnt) swap(a[pos],a[cnt]),swap(c[pos],c[cnt]);
for(R j=cnt+;j<=n;++j) if(!ck0(a[j][i])) {
register long double t=a[j][i]/a[cnt][i];
for(R k=;k<=m;++k) a[j][k]-=a[cnt][k]*t;
}
}
}
signed main() {
scanf("%d %d",&n,&m); for(R i=;i<=n;++i) for(R j=;j<=m;++j) scanf("%Lf",&a[i][j]);
for(R i=;i<=n;++i) scanf("%Lf",&c[i]);
Gauss(); printf("%d %d\n",cnt,ans);
}
然后不知自己刚开始哪里写锅了。。。那就先锅着。。。
2019.05.14
Luogu P3265 [JLOI2015]装备购买的更多相关文章
- 洛谷P3265 [JLOI2015]装备购买 [线性基]
题目传送门 装备购买 格式难调,题面就不放了. 分析: 一句话,有$n$件物品,每件物品有$m$个属性和一个花费值,如果一个装备的属性值可以由其他装备的属性值改变系数后组合得到那就不买,求购买最多装备 ...
- P3265 [JLOI2015]装备购买(高斯消元+贪心,线性代数)
题意; 有n个装备,每个装备有m个属性,每件装备的价值为cost. 小哥,为了省钱,如果第j个装备的属性可以由其他准备组合而来.比如 每个装备属性表示为, b1, b2.......bm . 它可以由 ...
- Luogu 3265 [JLOI2015]装备购买
BZOJ 4004 把所有不能相互表示出来的向量都买下,一定能得到最大能买的方案数. 求解线性无关向量可以高斯消元,最后没有变成$0$向量的就是基底. 本题还要求代价最小怎么办?我们只要先把所有向量按 ...
- 洛谷P3265 [JLOI2015]装备购买(线性基+高斯消元)
传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 不难看出题目讲的就是线性基 这种最小化权值的问题一般都是贪心的,就是按价值从低到高考虑每一个是否能选 据说贪心的证明得用拟阵我不会 据说这题是实数意 ...
- bzoj 4004: [JLOI2015]装备购买 拟阵 && 高消
4004: [JLOI2015]装备购买 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 337 Solved: 139[Submit][Status ...
- BZOJ_4004_[JLOI2015]装备购买_线性基
BZOJ_4004_[JLOI2015]装备购买_线性基 Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) ...
- [JLOI2015]装备购买 (高斯消元)
[JLOI2015]装备购买 \(solution:\) 首先这道题的题面已经非常清晰的告诉我们这就是线性空间高斯消元的一道题(可以用某些装备来表示另一件装备,这已经不能再明显了),只是这道题要求我们 ...
- BZOJ 4004: [JLOI2015]装备购买
4004: [JLOI2015]装备购买 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1154 Solved: 376[Submit][Statu ...
- bzoj 4004 [JLOI2015]装备购买 拟阵+线性基
[JLOI2015]装备购买 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1820 Solved: 547[Submit][Status][Dis ...
随机推荐
- Cannot find PHPUnit in include path (.;C:\php5\pear)
--pear channel-discover pear.phpunit.de --pear install phpunit/PHPUnit 此时会显示: No valid packages foun ...
- Java中Calendar常用方法总结
//获取当前时刻yyyy-MM-dd HH:mm:ss Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new S ...
- 文件上传框的美化+预览+ajax
1.文件上传基本写法: <input type="file" name="" id="" value="" /&g ...
- SQL常用语法及规则-表格的操作
一.规则和标准 1)每一行SQL语句结尾,加分号: 2)所创建的对象,名字用反引号(不是引号,与~同一个键): 3)一般关键字或保留字要大写: 4)两个中划线 + 空格(-- ),后面的语句为注释语句 ...
- css动画和渐变
变形: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 元素的变形:transform transform:none | <tra ...
- 关于openstack自动化安装的一点思考
在openstack针对具体应用的解决方案已成型之后,按照官方文档安装openstack实际上就成了一个繁琐的事情. 我有一个设想,之前实施了一点,还未成功,但是也想记录下来.最终目标:使用U盘直接部 ...
- JZ2440 启动NFS网络文件系统_初试led驱动
http://blog.csdn.net/emdfans/article/details/12260969 u-boot ---> q 修改bootargs变量 默认: bootargs=noi ...
- Python-通过调用Nmap来进行端口扫描
首先要安装python-nmap库,还要安装配置好nmap 实验机器IP:192.168.220.139 端口开放情况 代码 # -*- coding:utf-8 -*- __author__ = & ...
- Project Web Server PSI 接口一些常用操作
对Project Web Server进行二次开发,每天都把自己折腾到12点以后才休息,到处都是坑,研究那些烦人的PSI,国内根本查不到PSI相关的资料,对照API文档一点点谷歌资料,全部英文资料,开 ...
- 大数据学习路线copy自淘宝
一.hadoop视频学习(入门到精通) 二.数据挖掘(入门到精通) 三.Hadoop学习路线 1.开发前期准备 首先,如果你没有Java和Linux基础,建议你先简单学一下这两门课程,此宝贝里面都为你 ...