正题

题目链接:https://www.luogu.com.cn/problem/P3265


题目大意

给出nnn个有权值的mmm元组。求最大独立集,即一个最大的集合且内部元素线性无关。且在集合最大的情况下权值和最小

通俗的说就是没有任何一个元素内被其他元素的倍数和表示。


解题思路

我们考虑线性基的本质就是拟阵的一个最大独立集,我们可以用线性基的方法来做。

也就是需要构造一个实数线性基。根据之前[BJWC2011]元素这道题的方法,我们知道我们可以根据权值从小到大加入直到无法加入为止。

考虑如何用拟阵证明这个贪心的最优性。设一个拟阵(S,L)(S,L)(S,L),定义TTT是最优集合,现在我们知道了一个AAA是TTT的子集,考虑证明加入一个目前权值最小的www有A∪{x}⊆TA\cup \{x\}\subseteq TA∪{x}⊆T。
证明

  • 若A′=A∪{x}A'=A\cup\{x\}A′=A∪{x}且A′⊈TA'\nsubseteq TA′⊈T那么,先定义一个T′=A′T'=A'T′=A′若∣T′∣<∣T∣|T'|<|T|∣T′∣<∣T∣,根据拟阵的交换性则一定存在一个t∈Tt\in Tt∈T且t∉T′t\notin T't∈/​T′且T′∪{x}∈LT'\cup\{x\}\in LT′∪{x}∈L。那么我们不停将xxx加入T′T'T′中直到∣T′∣=T|T'|=T∣T′∣=T那么此时有(T′−{w})∪{x}=T(T'-\{w\})\cup\{x\}=T(T′−{w})∪{x}=T。也就是val(T′)−val(w)+val(x)=val(T)val(T')-val(w)+val(x)=val(T)val(T′)−val(w)+val(x)=val(T)。
    而又因为val(w)<val(x)val(w)<val(x)val(w)<val(x)所以val(T′)<val(T)val(T')<val(T)val(T′)<val(T),那么TTT就不是最优子集,所以不成立。
    证毕

所以我们就这样从小到大加即可,时间复杂度O(nm2)O(nm^2)O(nm2)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=510;
const double eps=1e-5;
struct node{double x[N];int w;
}a[N];
int n,m,cnt,p[N],ans;
bool cmp(node x,node y)
{return x.w<y.w;}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%lf",&a[i].x[j]);for(int i=1;i<=n;i++)scanf("%d",&a[i].w);sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)if(fabs(a[i].x[j])>eps){if(!p[j]){p[j]=i;cnt++;ans+=a[i].w;break;}else{double rate=a[i].x[j]/a[p[j]].x[j];for(int k=j;k<=m;k++)a[i].x[k]-=a[p[j]].x[k]*rate;}}}printf("%d %d\n",cnt,ans);
}

P3265-[JLOI2015]装备购买【线性基,拟阵贪心】相关推荐

  1. BZOJ4004: [JLOI2015]装备购买

    Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示  (1 <= i <= n; 1 < ...

  2. bzoj4004[JLOI2015]装备购买

    http://www.lydsy.com/JudgeOnline/problem.php?id=4004 拟阵. 好吧,表示完全不会. 还是先膜拜一下大神吧 刘雨辰<对拟阵的初步研究> N ...

  3. P3265 [JLOI2015] 线性基

    题意 传送门 P3265 [JLOI2015]装备购买 题解 购买装备的最大数量即线性空间的基,高斯消元求矩阵的秩即可.对于最小的花费,在高斯消元的时候采取贪心策略,取满足当前主元位置非零的且花费最小 ...

  4. 线性代数(矩阵、高斯、线性基……)

    矩阵 矩阵加法: 相同位置相加. 矩阵乘法: 满足分配率.结合律,不满足交换律(矩阵与逆矩阵之间除外) . 矩阵转置: 记矩阵为 \(A\) ,则 \(A\) 的转置记为 \(A^T\) . 性质: ...

  5. 高斯消元简单线性代数线性基学习记录

    线性代数,唉 高斯消元 P4035 [JSOI2008]球形空间产生器 题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标 ...

  6. 【bzoj4568】【SCOI2016】【幸运数字】【树上倍增+线性基】

    Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个 幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征. ...

  7. 【BZOJ4004】装备购买(线性基)

    [BZOJ4004]装备购买(线性基) 题面 BZOJ 洛谷 Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am ...

  8. 【bzoj2460】[BeiJing2011]元素 贪心+高斯消元求线性基

    题目描述 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石. 一般地,矿石越多则法力越强,但物极必反 ...

  9. 【BZOJ3105】新Nim游戏,线性基+贪心

    Time:2016.09.08 Author:xiaoyimi 转载注明出处谢谢 思路: 思路题 看似简单,但是使用的知识还是很有意思(sang bing)的 首先就是关于Nim游戏 总之就是第一次取 ...

最新文章

  1. 测试MVC3时关于Model Builder语句的更改
  2. html5实现贪吃蛇,分享一个用html5实现的贪吃蛇特效代码
  3. 妄想性仮想人格障害 新手教程 +改动器
  4. jsf表单验证_动态表单,JSF世界期待已久
  5. leetcode 973. 最接近原点的 K 个点(排序)
  6. 【BZOJ-3721】Final Bazarek 贪心
  7. SHIFT后门拿服务器之方法总结
  8. android视频播放器sdk对比,Android项目之android SDK视频播放与vitamio视频播放
  9. python中 return self的作用
  10. linux下mysql5.7以上my.cnf配置文件配置
  11. spring mvc 前台属性数据的传递和后台属性数据的接收
  12. 大疆遭遇“口袋无人机”革命?
  13. 支付宝小程序对接流程和工具类
  14. 零零信安王宇:通过基于VPT的风险管理 用20%的时间去解决80%的风险
  15. bailian2705
  16. 计算机cpu风扇关闭,cpu风扇怎么关闭
  17. MSP430单片机 MTH01-SPI 温湿度传感器 程序
  18. 记录一下润乾报表填报的制作
  19. 厦门感恩回馈一线职工 为其开启“新年旅程”
  20. uniapp打包WGT背景图不显示问题

热门文章

  1. python多线程 不在main_从python线程(不是main)启动pyQt线程有什么不...
  2. 选了combobox里的选项后没激发change事件_stata 事件分析法
  3. java虚拟机和javaGC_Java虚拟机(三):GC算法和种类
  4. java蛮力法背包问题_[算法课]五种蛮力法解决01背包问题
  5. canvas 实现图片局部模糊_Canvas模糊化处理图片、毛玻璃处理图片之stackblur.js
  6. ueditor如何设置上传图片的高度宽度_怎么设置天猫主图
  7. suse linux 文件只可读,SUSE LINUX下文件系统变只读的问题解决
  8. 7-3 银行家算法--综合 (50 分)(思路+详解+分析输入)宝宝们 加油
  9. 紧跟月影大佬的步伐,一起来学习如何写好JS(上)
  10. 从当前元素继续寻找_云漫圈 | 寻找无序数组的第k大元素