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 ...
随机推荐
- ASP.NET Core中,UseDeveloperExceptionPage扩展方法会吃掉异常
在ASP.NET Core中Startup类的Configure方法中,有一个扩展方法叫UseDeveloperExceptionPage,如下所示: // This method gets call ...
- 【H5】复制粘贴
源文案地址 使用案例 案例1:复制分享链接 function copyTextToClipboard(text) { var textArea = document.createElement(&qu ...
- 【SQL】MaxComputer常用SQL与注意小结
MaxComputer常用SQL 1.建表 CREATE TABLE dwd_tfc_ctl_signal_phasedir ( cust_inter_id STRING COMMENT '客户路口I ...
- UWP ListView 绑定 单击 选中项 颜色
refer: https://www.cnblogs.com/lonelyxmas/p/7650259.html using System; using System.Collections.Gene ...
- Android开发——进程间通信之Bundle和文件
0. 前言 不论是Android还是其他操作系统,都会有自己的IPC机制,所谓IPC(Inter-Process Communication)即进程间通信.首先线程和进程是很不同的概念,线程是CPU ...
- POJ2274
这真的是一道数据结构的好题. 题意是在一条直线上有n辆车,每辆车有一个初始位置x[i]和速度v[i],问最终(在无限时间后)一共会发生多少次超车事件(mod 1000000),以及输出这些事件(如果大 ...
- python 翻转棋(othello)
利用上一篇的框架,再写了个翻转棋的程序,为了调试minimax算法,花了两天的时间. 几点改进说明: 拆分成四个文件:board.py,player.py,ai.py,othello.py.使得整个结 ...
- 如何安装ipa文件(二)
第一篇文章请看: http://www.cnblogs.com/BK-12345/p/6000124.html 写第二篇的目的是因为iTunes更新了,有一些东西发生了变化,应用没有了,其实还是存在的 ...
- python程序出现No module named '_socket' 解决方法
首先看一下这个错误,错误显示没有这个_socket这个模块 看一个简单的程序理解这个错误是怎么出现的 这个程序就是像浏览器发起请求发开一个链接然后关闭,一直循环,运行之后产生这个错误,产生这个错误的原 ...
- Nginx+IIS分布式部署和负载均衡
1.IIS中部署2个网站 创建2个网站,端口分别为9001.9002 2.下载Nginx 可以进入Nginx官网进行下载,官网地址: http://nginx.org/,需要下载windows版的 3 ...