博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【题解】 bzoj4004: [JLOI2015]装备购买 (线性基)
阅读量:5236 次
发布时间:2019-06-14

本文共 941 字,大约阅读时间需要 3 分钟。

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
#define double long doubleusing 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

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

你可能感兴趣的文章
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
jquery的contains方法
查看>>
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
转:基于用户投票的排名算法系列
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
逻辑运算和while循环.
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>