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;
}

【题解】 bzoj4004: [JLOI2015]装备购买 (线性基)的更多相关文章

  1. bzoj4004 [JLOI2015]装备购买——线性基+贪心

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4004 今天讲课讲到的题,据说满足拟阵的性质,所以贪心是正确的: 总之就贪心,按价格从小到大排 ...

  2. BZOJ 4004 [JLOI2015]装备购买 | 线性基

    题目链接 Luogu P3265 题解 非常正常的线性基! 但是我不会线性基-- (吐槽:#define double long double 才过--) #include <cstdio> ...

  3. BZOJ 4004 [JLOI2015]装备购买 ——线性基

    [题目分析] 题目很简单,就是要维护一个实数域上的线性基. 仿照异或空间的线性基的方法,排序之后每次加入一个数即可. 卡精度,开long double 和 1e-6就轻松水过了. [代码] #incl ...

  4. BZOJ4004 [JLOI2015]装备购买[贪心+线性基+高消]

    一个物品可以被其他物品表出,说明另外的每个物品看成矩阵的一个行向量可以表出该物品代表的行向量. 于是构造矩阵,求最多选多少个物品,就是尽可能用已有的物品去表示,相当于去消去一些没必要物品, 类似于xo ...

  5. BZOJ4004: [JLOI2015]装备购买

    总之就是线性基那一套贪心理论直接做就好了. 然而加强数据后很卡精度的样子. 于是重点在于这个特技:在整数模意义下搞. #include<cstdio> #include<algori ...

  6. [BZOJ4004][JLOI2015]装备购买(贪心+线性基)

    求最小权极大线性无关组. 先将所有向量按权值排序,从小到大依次判断,若能被前面已选向量线性表出则不选,这样一定最优. 据说是用拟阵来证明,但感性理解一下感觉比较显然,首先这样个数一定是最多的,其次对于 ...

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

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

  8. [JLOI2015]装备购买(线性基)

    [JLOI2015]装备购买 题目描述 脸哥最近在玩一款神奇的游戏,这个游戏里有 nn 件装备,每件装备有 \(m\) 个属性,用向量 \(\mathbf{z_i}\)=\((a_1, \ldots ...

  9. BZOJ_4004_[JLOI2015]装备购买_线性基

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

随机推荐

  1. Android 网络编程之---HttpClient 与 HttpURLConnection 共用cookie

    HttpClient 与 HttpURLConnection 共用 SessionId HttpClient 与 HttpUrlConnection 是Android 中HTTP操作最常见的訪问方式. ...

  2. 【MongoDB】MongoDB的下载 安装 配置及使用

    windows系统  教程 1.下载地址   (官方提供根据系统位数选择对应的bit.exe下载) 由于自己win32系统不支持该官方版本,在网上又找了个 mongodb-win32-i386版本 p ...

  3. [Noi2014]购票 BZOJ3672 点分治+斜率优化+CDQ分治

    Description  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.全国的城市构成了一棵以SZ市为根的有根树,每个城市与它的 ...

  4. 20155321 《网络攻防》 Exp3 免杀原理与实践

    20155321 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 根据实验指导书,杀软有两个方法可以检测出恶意代码.第一种是基于特征码,即先对流行代码特 ...

  5. 2017-2018-2 《网络对抗技术》20155322 Exp8 web基础

    [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Web前端HTML 2.2-Web前端javascipt 2.3-Web后端 2.4 ...

  6. 【第三方插件】使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  7. LoRa---数据包结构、跳频

    数据包结构  跳频扩频技术FHSS 人太懒,直接贴图,自己看!

  8. 11.8 开课二个月零四天 (Jquery取属性值,做全选,去空格)

    1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  9. HDU-6356 Glad You Came (线段树)

    题目链接:Glad You Came 题意:数组有n个数初始为0,m个询问,每个询问给出L R V(按照给定函数生成),将数组的下标L到R的数与V取较大值,最后输出给定的公式结果. 题意:哇~打比赛的 ...

  10. CSS 背景实例

    CSS 背景属性属性 描述background 简写属性,作用是将背景属性设置在一个声明中.background-attachment 背景图像是否固定或者随着页面的其余部分滚动.background ...