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 ...
随机推荐
- bzoj 4501: 旅行 01分数规划+概率期望dp
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4501 题解: 首先我们不考虑可以删除边的情况下,如何计算期望边数. 然后我们发现这是个有 ...
- poj3414Pots(倒水BFS)
Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13231 Accepted: 5553 Special J ...
- .NET接入微信支付(一)JS API接入 V3
前段时间刚接完银联支付,完事后又接了微信支付,前段时间一直急着上线,微信的接入一直没有时间处理,今天我们就来整理一下微信支付的接入方法和要点. 配置: 首先呢微信支付需要通过审核,审核啥的准备工作我就 ...
- C++模板特化编程
在C++中,模板特化是除了类之外的一种封装变化的方法.模板特化可以通过编译器来对不同的模板参数生成不同的代码. 模板特化通常以模板结构体作为载体.常用技法包括:类型定义.静态成员常量定义和静态成员函数 ...
- 异常:Project configuration is not up-to-date with pom.xml解决方案
转自:https://www.cnblogs.com/zhujiabin/p/6343423.html 1. Description Resource Path Location ...
- service的生命周期以及两种service的差异
可以看到,两种service的生命周期都相对简单,有一点不同的是,Intentservice每次调用的时候都执行onstartcommand,而boundservice一旦启动了之后,就不会每次执行o ...
- 【总结整理】JQuery基础学习---事件篇
jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于 ...
- Win7环境下Sublime Text 3下安装NodeJS插件
1.首先下载安装Node.JS,配置好环境变量(安装好Node.JS默认是配置好了环境变量的). 2.Sublime Text 3下安装NodeJS插件. 参考的两篇文章:http://www.cnb ...
- jquery提供的数据提交方式2-ajax
以前介绍过ajax提交方式.但仅仅是个例子,今天将详细介绍jquery中的$.ajax,$.get,$.post方法. 一,首先介绍$.ajax方法参数(以下参数来自:http://www.cnblo ...
- linux 的 scp 命令
linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录: ================== scp 命令 ================== scp 可以在 2个 linu ...