BZOJ 4004: [JLOI2015]装备购买
4004: [JLOI2015]装备购买
Time Limit: 20 Sec Memory Limit: 128 MB
Submit: 1154 Solved: 376
[Submit][Status][Discuss]
Description
Input
Output
一行两个数,第一个数表示能够购买的最多装备数量,第二个数表示在购买最多数量的装备的情况下的最小花费
Sample Input
1 2 3
3 4 5
2 3 4
1 1 2
Sample Output
HINT
Source
挺水的线性基裸题,只是把两个数的异或改成两行数的相消。
一开始怕double掉精度(只是不想用EPS),就写了个辗转相消,后来经短短等人的提示,发现会爆long long,所以,还是用long double吧。
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using std::fabs; typedef long double lng; const int mxn = ;
const lng eps = 1E-; int n, m; struct data
{
int c;
lng s[mxn];
}A[mxn], *B[mxn]; inline bool cmp(data *a, data *b)
{
return a->c < b->c;
} lng G[mxn][mxn]; inline bool insert(data *d)
{
for (int i = ; i <= m; ++i)
if (fabs(d->s[i]) > eps)
{
if (fabs(G[i][i]) > eps)
{
lng k = d->s[i] / G[i][i]; for (int j = i; j <= m; ++j)
d->s[j] -= G[i][j] * k;
}
else
{
for (int j = i; j <= m; ++j)
G[i][j] = d->s[j]; return true;
}
} return false;
} signed main(void)
{
scanf("%d%d", &n, &m); for (int i = ; i <= n; ++i)
for (int j = ; j <= m; ++j)
scanf("%d", &A[i].c), A[i].s[j] = A[i].c; for (int i = ; i <= n; ++i)
scanf("%d", &A[i].c), B[i] = A + i; std::sort(B + , B + n + , cmp); int cnt = , ans = ; for (int i = ; i <= n; ++i)
if (insert(B[i]))
++cnt, ans += B[i]->c; printf("%d %d\n", cnt, ans);
}
@Author: YouSiki
BZOJ 4004: [JLOI2015]装备购买的更多相关文章
- bzoj 4004: [JLOI2015]装备购买 拟阵 && 高消
4004: [JLOI2015]装备购买 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 337 Solved: 139[Submit][Status ...
- bzoj 4004 [JLOI2015]装备购买 拟阵+线性基
[JLOI2015]装备购买 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1820 Solved: 547[Submit][Status][Dis ...
- BZOJ 4004 JLOI2015 装备购买 高斯消元+线性基
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4004 Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装 ...
- BZOJ 4004: [JLOI2015]装备购买 [高斯消元同余 线性基]
和前两(一)题一样,不过不是异或方程组了..... 然后bzoj的新数据是用来卡精度的吧..... 所有只好在模意义下做啦 只是巨慢无比 #include <iostream> #incl ...
- BZOJ 4004: [JLOI2015]装备购买 高斯消元解线性基
BZOJ严重卡精,要加 $long$ $double$ 才能过. 题意:求权和最小的极大线性无关组. 之前那个方法解的线性基都是基于二进制拆位的,这次不行,现在要求一个适用范围更广的方法. 考虑贪心 ...
- bzoj 4004 [JLOI2015]装备购买——拟阵证明贪心+线性基
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4004 看Zinn博客水过去…… 运用拟阵可以证明按价格从小到大买的贪心是正确的.但自己还不会 ...
- BZOJ 4004 [JLOI2015]装备购买 | 线性基
题目链接 Luogu P3265 题解 非常正常的线性基! 但是我不会线性基-- (吐槽:#define double long double 才过--) #include <cstdio> ...
- BZOJ 4004 [JLOI2015]装备购买 ——线性基
[题目分析] 题目很简单,就是要维护一个实数域上的线性基. 仿照异或空间的线性基的方法,排序之后每次加入一个数即可. 卡精度,开long double 和 1e-6就轻松水过了. [代码] #incl ...
- 【BZOJ 4004】 装备购买(高斯消元+贪心)
装备购买 题目 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 <= j ...
随机推荐
- React Native创建一个APP
React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽 ...
- JDBC详解系列(一)之流程
---[来自我的CSDN博客](http://blog.csdn.net/weixin_37139197/article/details/78838091)--- JDBC概述 使用JDBC也挺长 ...
- NodeJS旅程 : Less
我一直强调我是个很懒的人,虽然我认为自己是个代码控但不代表我喜欢写大量代码.有做Web前端开发的人一定都接触CSS,由其在当下CSS3更是做出Cool站的必修课.我曾和不少的前端开发讨论过CSS3,我 ...
- Android——界面特效 相关知识总结贴
帮助android UI实现动画特效 http://www.apkbus.com/android-79595-1-1.html 帮助android应用程序实现动画特效 http://www.apkbu ...
- 【LeetCode】数组--合并区间(56)
写在前面 老粉丝可能知道现阶段的LeetCode刷题将按照某一个特定的专题进行,之前的[贪心算法]已经结束,虽然只有三个题却包含了简单,中等,困难这三个维度,今天介绍的是第二个专题[数组] 数组( ...
- 290. Word Pattern【LeetCode by java】
今天发现LintCode页面刷新不出来了,所以就转战LeetCode.还是像以前一样,做题顺序:难度从低到高,每天至少一题. Given a pattern and a string str, fin ...
- k8s之使用secret获取私有仓库镜像
一.前言 其实这次实践算不上特别复杂,只是在实践过程中遇到了一些坑,以及填坑的方法是非常值得在以后的学习过程中参考借鉴的 二.知识准备 1.harbor是一个企业级的镜像仓库,它比起docker re ...
- cf 1029D
题面 题目描述 给定含n个整数的数组a. 规定数x,y的合并为xy.如:数12与数3456的合并为数123456. 有数组中的位置对(i,j)(i≠j),计算使ai,aj的合并能被k整除的位置对数量. ...
- Nmap命令
命令行:(显示扫描过程 -v ) 扫描单个主机 #nmap www.hostName.com 扫描整个ip段(子网) #nmap 192.168.1.1/24 //表示当前ip下的24位掩码主机都要扫 ...
- SpringMVC 之 @ResponseBody 和 @RequestBody
前后端进行数据交互的时候,规定数据交互的格式,使数据交互规范而统一,是极为重要的事.一般而言,我们会采用 JSON 进行数据交互.本文暂不讨论如何 JSON 的格式规范,而是解析一下如何在 Sprin ...