【题解】 bzoj4004: [JLOI2015]装备购买 (线性基)
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]装备购买 (线性基)相关推荐
- BZOJ4004: [JLOI2015]装备购买
Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 < ...
- bzoj4004[JLOI2015]装备购买
http://www.lydsy.com/JudgeOnline/problem.php?id=4004 拟阵. 好吧,表示完全不会. 还是先膜拜一下大神吧 刘雨辰<对拟阵的初步研究> N ...
- 【BZOJ4004】装备购买(线性基)
[BZOJ4004]装备购买(线性基) 题面 BZOJ 洛谷 Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am ...
- P3265 [JLOI2015] 线性基
题意 传送门 P3265 [JLOI2015]装备购买 题解 购买装备的最大数量即线性空间的基,高斯消元求矩阵的秩即可.对于最小的花费,在高斯消元的时候采取贪心策略,取满足当前主元位置非零的且花费最小 ...
- 线性代数(矩阵、高斯、线性基……)
矩阵 矩阵加法: 相同位置相加. 矩阵乘法: 满足分配率.结合律,不满足交换律(矩阵与逆矩阵之间除外) . 矩阵转置: 记矩阵为 \(A\) ,则 \(A\) 的转置记为 \(A^T\) . 性质: ...
- 高斯消元简单线性代数线性基学习记录
线性代数,唉 高斯消元 P4035 [JSOI2008]球形空间产生器 题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标 ...
- 【BZOJ2115】[Wc2011] Xor 高斯消元求线性基+DFS
[BZOJ2115][Wc2011] Xor Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ...
- P3265-[JLOI2015]装备购买【线性基,拟阵贪心】
正题 题目链接:https://www.luogu.com.cn/problem/P3265 题目大意 给出nnn个有权值的mmm元组.求最大独立集,即一个最大的集合且内部元素线性无关.且在集合最大的 ...
- 【题解】LOJ6060 Set(线性基)
[题解]LOJ6060 Set(线性基) orz gql 设所有数的异或和为\(S\),答案是在\(\max (x_1+S\and x_1)\)的前提下\(\min x_1\)输出\(x_1\) 转换 ...
- [BZOJ 3811]玛里苟斯(线性基)尽量理解的题解
文章目录 title solution code title 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题. S 是一个可重集合,S={a1,a2,-,an}. 等概率随 ...
最新文章
- MQTT消息长度限制
- java中scanner if用法_Java通过Scanner了解if...else if语句
- 符号 RUNOOB python练习题 51
- QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed
- app版本升级的测试点
- initrd.img处理
- Vue.js视频教程
- vs2005开发Silverlight平台搭建
- 列举5种IE haslayout的属性及其值?
- SSM项目实战之八:静态资源文件的整合
- linux计划任务管理: cron定时任务,详解
- 列联表分析-独立性检验
- 关于安装VISIOnbsp;2007报错office.zh-…
- 新域名正在备案,静候佳音
- linux ubuntu bionic,如何升级Ubuntu到18.04 LTS Bionic Beaver
- 数据结构---王道408
- 隔行变色小案例(5)
- JAVA源码系列-ArrayList
- 域名注册需要云服务器吗,说明申请域名的方法步骤有哪些?域名注册需要云服务器吗?...
- 摩尔斯电码(Morse code)
热门文章
- 二叉树:一入递归深似海,从此offer是路人
- Acrobat Pro DC 教程,如何使用文本和图片文件创建 PDF?
- 如何在 iPhone、iPad 和 Mac 上更改日历颜色?
- Exchange 2013CU17和office 365混合部署-设置属性筛选(三)
- AWS披露面向Amazon S3的AI监控方案
- 一个c++程序员对大学生的友情提醒
- 电脑e盘里的文件误删了 如何恢复教程分享
- 关于中国男女的一些私密数据......
- 8,888+ 字,彻底征服 Spring AOP!
- 分享400多道算法题,来挑战吧