bzoj4004,戳我戳我

Solution:

  • 裸的线性基,这没啥好说的,我们说说有意思的地方(就是我老是wa的地方)

Attention:

  • 这题在\(luogu\),上貌似不卡精度,\(bzoj\)卡精度(一开始还以为自己精度被卡的很惨,结果是线性基打错了)
  • 线性基板子:
    for(int j=50;j>=0;j--){if(!(box>>j))continue;if(!a[j]){a[j]=box;break;}else box=(a[j]^box);}
  • 注意不是一个个动态开位置存线性基,而是像高斯消元一样存一个倒三角
  • 然后我们要注意的就是线性基的制作方式,这道题表达意思是要前面存在过的装备组合相加得到,那么我们消元的时候是拿存在的线性基的倍数消元
    是这个样子:
double X=eqt[num].a[i]/x[i][i];for(int j=i;j<=m;j++){eqt[num].a[j]-=(x[i][j]*X);
}

不是这个样子(他和高斯小消元还是有点小不同(我觉得可能是我的高斯消元板子写错了)

double X=x[i][i]/eqt[num].a[i];for(int j=i;j<=m;j++){eqt[num].a[j]*=X;eqt[num].a[j]-=x[i][j];}

Code:

//It is coded by Ning_Mew on 5.27
#include<bits/stdc++.h>
#define double long double
using namespace std;const int maxn=507;
const double eps=1e-5;int n,m,ans=0,sum=0;
struct Node{double a[maxn];int val;
}eqt[maxn];
double x[maxn][maxn];bool cmp(const Node &xx,const Node &yy){return xx.val<yy.val;}
double ffabs(double xx){return xx<0?-xx:xx;}
bool par(int num){bool kk=false; for(int i=1;i<=m;i++){if(fabs(eqt[num].a[i])<eps)continue;if(fabs(x[i][i])<eps){for(int j=i;j<=m;j++){x[i][j]=eqt[num].a[j];}kk=true;break;}else{/*double X=x[i][i]/eqt[num].a[i];for(int j=i;j<=m;j++){eqt[num].a[j]*=X;eqt[num].a[j]-=x[i][j];}*/double X=eqt[num].a[i]/x[i][i];for(int j=i;j<=m;j++){eqt[num].a[j]-=(x[i][j]*X);}}}return kk;
}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%Lf",&eqt[i].a[j]);}}for(int i=1;i<=n;i++)scanf("%d",&eqt[i].val);sort(eqt+1,eqt+n+1,cmp);for(int i=1;i<=n;i++){if(par(i))ans+=eqt[i].val,sum++;}printf("%d %d\n",sum,ans);return 0;
}

转载于:https://www.cnblogs.com/Ning-Mew/p/9102531.html

【题解】 bzoj4004: [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. 【BZOJ4004】装备购买(线性基)

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

  4. P3265 [JLOI2015] 线性基

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

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

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

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

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

  7. 【BZOJ2115】[Wc2011] Xor 高斯消元求线性基+DFS

    [BZOJ2115][Wc2011] Xor Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ...

  8. P3265-[JLOI2015]装备购买【线性基,拟阵贪心】

    正题 题目链接:https://www.luogu.com.cn/problem/P3265 题目大意 给出nnn个有权值的mmm元组.求最大独立集,即一个最大的集合且内部元素线性无关.且在集合最大的 ...

  9. 【题解】LOJ6060 Set(线性基)

    [题解]LOJ6060 Set(线性基) orz gql 设所有数的异或和为\(S\),答案是在\(\max (x_1+S\and x_1)\)的前提下\(\min x_1\)输出\(x_1\) 转换 ...

  10. [BZOJ 3811]玛里苟斯(线性基)尽量理解的题解

    文章目录 title solution code title 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随 ...

最新文章

  1. MQTT消息长度限制
  2. java中scanner if用法_Java通过Scanner了解if...else if语句
  3. 符号 RUNOOB python练习题 51
  4. QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed
  5. app版本升级的测试点
  6. initrd.img处理
  7. Vue.js视频教程
  8. vs2005开发Silverlight平台搭建
  9. 列举5种IE haslayout的属性及其值?
  10. SSM项目实战之八:静态资源文件的整合
  11. linux计划任务管理: cron定时任务,详解
  12. 列联表分析-独立性检验
  13. 关于安装VISIOnbsp;2007报错office.zh-…
  14. 新域名正在备案,静候佳音
  15. linux ubuntu bionic,如何升级Ubuntu到18.04 LTS Bionic Beaver
  16. 数据结构---王道408
  17. 隔行变色小案例(5)
  18. JAVA源码系列-ArrayList
  19. 域名注册需要云服务器吗,说明申请域名的方法步骤有哪些?域名注册需要云服务器吗?...
  20. 摩尔斯电码(Morse code)

热门文章

  1. 二叉树:一入递归深似海,从此offer是路人
  2. Acrobat Pro DC 教程,如何使用文本和图片文件创建 PDF?
  3. 如何在 iPhone、iPad 和 Mac 上更改日历颜色?
  4. Exchange 2013CU17和office 365混合部署-设置属性筛选(三)
  5. AWS披露面向Amazon S3的AI监控方案
  6. 一个c++程序员对大学生的友情提醒
  7. 电脑e盘里的文件误删了 如何恢复教程分享
  8. 关于中国男女的一些私密数据......
  9. 8,888+ 字,彻底征服 Spring AOP!
  10. 分享400多道算法题,来挑战吧