BZOJ 4004 实数线性基
来源:互联网 发布:python 气泡提醒 编辑:程序博客网 时间:2024/06/05 12:03
题目链接
题意:给你
思路:
很明显的线性基的题。
先按价格从小到大排序。
然后类似异或线性基的处理,每插入一个装备,都判断能否被其他的装备线性组合出来,若不能,则加入线性基。
代码:
#include<cmath>#include<iostream>#include<algorithm>using namespace std;#define double long doubleconst int A = 500 + 10;const double eps = 1e-6;class P{public: double x[A];int v; bool operator < (const P& rhs) const{ return v < rhs.v; }}a[A],b[A];bool vis[A];int n,m;void solve(){ int ans = 0,cnt = 0; for(int i=1 ;i<=n ;i++) for(int j=m ;j>=1 ;j--){ if(fabs(a[i].x[j]) > eps){ if(!vis[j]){ vis[j] = 1; cnt++;ans += a[i].v; b[j] = a[i]; break; } else{ double tem = a[i].x[j]/b[j].x[j]; for(int k=j ;k>=1 ;k--) a[i].x[k] -= tem*b[j].x[k]; } } } cout << cnt << " " << ans << endl;}int main(){ ios::sync_with_stdio(false); cin >> n >> m; for(int i=1 ;i<=n ;i++) for(int j=1 ;j<=m ;j++) cin >> a[i].x[j]; for(int i=1 ;i<=n ;i++) cin >> a[i].v; sort(a+1,a+n+1); solve(); return 0;}
阅读全文
0 0
- BZOJ 4004 实数线性基
- bzoj 3105 线性基
- BZOJ 2115 线性基
- BZOJ 4269 高斯消元求线性基
- BZOJ 2844 高斯消元 线性基
- BZOJ 3105 线性基 高斯消元
- 【BZOJ 4184】shallot 线性基
- BZOJ 2460 [贪心][线性基]
- BZOJ 3569 [Hash][线性基]
- [BZOJ]2460 元素 线性基
- [BZOJ]2115 Xor 线性基
- BZOJ 4004 装备购买(贪心+线性基)
- BZOJ 2115([Wc2011] Xor-线性基求法)
- 【BZOJ】【P2115】【Wc2011】【Xor】【题解】【线性基】
- BZOJ 2115 WC2011 Xor 线性基+贪心
- bzoj 2460: [BeiJing2011]元素(线性基)
- [高斯消元 线性基] BZOJ 2115 [Wc2011] Xor
- [高斯消元 线性基] BZOJ 4269 再见Xor
- android电源管理
- c指针和结构体
- 2017.09.08
- nodejs模块
- 格式控制工具
- BZOJ 4004 实数线性基
- Python3 源码安装
- git 查看某个文件的修改历史记录
- asp.net小数点四舍五入的方法
- 判断HTML页面是点击历史返回打开,还是正常跳转打开
- 代理模式之静态代理
- Leetcode c语言-Two Sum
- 1、LambdaToSql 发布1.0.0.1版本
- frm表单-参数面板时间控件默认值问题总结