【JZOJ4230】淬炼神体【数论,数学】【二分】
题目大意:
给出 n , a [ ] n,a[] n,a[]和 b [ ] b[] b[],求在满足 ∑ i = 1 n x i = m \sum^{n}_{i=1}x_i=m ∑i=1nxi=m时 m a x { ∑ i = 1 n a i × x i ∑ i = 1 n b i × x i } max\{\frac{\sum^{n}_{i=1}a_i\times x_i}{\sum^{n}_{i=1}b_i\times x_i}\} max{∑i=1nbi×xi∑i=1nai×xi}。
思路:
0 / 1 0/1 0/1分数规划裸体。
推荐参考《算法竞赛进阶指南》 P 181 P181 P181。
随便取一个数 L L L,判断是否有一组 x [ ] x[] x[]满足 ∑ i = 1 n ( a i − L × b i ) ≥ L \sum^{n}_{i=1}(a_i-L\times b_i)\geq L ∑i=1n(ai−L×bi)≥L。
若有,那么变形得 ( ∑ i = 1 n a i × x i ) − L × ( ∑ i = 1 n b i × x i ≥ 0 ) (\sum^{n}_{i=1}a_i\times x_i)-L\times(\sum^{n}_{i=1}b_i\times x_i\geq 0) (∑i=1nai×xi)−L×(∑i=1nbi×xi≥0)。则 ∑ i = 1 n a i × x i ∑ i = 1 n b i × x i ≥ L \frac{\sum^{n}_{i=1}a_i\times x_i}{\sum^{n}_{i=1}b_i\times x_i}\geq L ∑i=1nbi×xi∑i=1nai×xi≥L。
所以答案就不小于 L L L,否则答案就小于 L L L。
那么就二分 L L L,知道精度小于 1 0 − 3 10^{-3} 10−3为止。
代码:
#include <cstdio>
#include <algorithm>
using namespace std;const int N=100010;
int n,m;
double l,r,mid;struct node
{int a,b;double s;
}a[N];bool cmp(node x,node y)
{return x.s>y.s;
}bool check() //判断最大的m个之和是否大于L
{double sum=0.0;for (int i=1;i<=m;i++)sum+=a[i].s;return sum>=0;
}int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)scanf("%d",&a[i].a);for (int i=1;i<=n;i++)scanf("%d",&a[i].b);l=0.0001;r=20000.0;while (r-l>=0.0001) //二分L{mid=(l+r)/2.0;for (int i=1;i<=n;i++)a[i].s=(double)a[i].a/mid-(double)a[i].b;sort(a+1,a+1+n,cmp);if (check()) l=mid;else r=mid;}printf("%0.3lf\n",l);return 0;
}
【JZOJ4230】淬炼神体【数论,数学】【二分】相关推荐
- jzoj4230. 【五校联考4day1】淬炼神体(B组——Day3)
jzoj4230. [五校联考4day1]淬炼神体 题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一 ...
- [jzoj 4230] 淬炼神体{ 0/1分数规划+二分答案}
题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一阵眩晕过后,仙女发现自己来到了一个浮岛上,四周的半空 ...
- 亿些模板【数论数学】
文章目录 前言 数论数学模板 GCD exgcd 快速幂 线性推逆元 线性推逆元(非连续) 逆元求组合数 矩阵乘法 线性筛素数-埃氏筛 线性筛素数-线性筛 线性筛欧拉-埃氏筛 线性求欧拉 龟速乘 FF ...
- 男神体 骚包体 快乐体 手拙体 好身体(haha),你知道这些字体的英文名字吗?
脑门儿 最近准备建一个网站,于是特别留意网页上那些勾魂儿的元素. 除了版面设计和配色方案之外,字体也是勾魂儿利器之一,尤其是Slogan和标题的字体. 全球著名平面设计师Robin Williams在 ...
- 878. 第 N 个神奇数字 数学+二分
878. 第 N 个神奇数字 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...
- 关于set的自定义比较函数的使用及结构体的上下二分用法
如果set的类型是个结构体 我们需要定义重载函数 ***set 容器模版需要3个泛型参数,如下: template <class Key,class Compare = less <key ...
- noip2017考前基础复习——数论数学
·最大公约数 gcd 辗转相除法 gcd(a,b)=gcd(b,a%b) 1 int gcd(int x,int y){ 2 if(y==0) return x; 3 return gcd(y,x% ...
- hdu 4430 Yukari's Birthday (简单数学 + 二分)
Problem - 4430 题意是,给出蜡烛的数量,要求求出r和k,r是蜡烛的层数,k是每一层蜡烛数目的底数. 开始的时候,没有看清题目,其实中间的那根蜡烛是可放可不放的.假设放置中间的那根蜡烛,就 ...
- 洛谷P7361:拜神(SA、二分、主席树、启发式合并)
解析 很好的一道SA的题.(觉得完全可以评黑了啊qwq) 我一开始拿SAM和线段树硬做,不断修正最后发现自己无法在可接受复杂度内解决的问题,直接GG- 垃圾数据还骗到了50分 所以写一道题之前还是要先 ...
最新文章
- 亿级商城促销系统架构设计与实践
- python程序员发展-2018年,程序员对Python有着这些期待!
- 【转载】Apache Spark Jobs 性能调优(二)
- 【科技金融】某平台互金产品设计流程和运营策略
- 修改注册表 为右键添加快捷命令
- 对比学习可以使用梯度累积吗?
- opengl加载显示3D模型RAW类型文件
- 传统公司部署OpenStack(t版)简易介绍(六)——neutron模块部署
- mysql命令速查手册
- cydia多开微信_cydia怎么安装微信
- [英文邮件] 感谢信的标题
- 【无标题】Windows10安全中心永久关闭教程
- 【自动驾驶】浅谈自动驾驶在业界的发展
- Unity3D场景转换效果
- 0x3f3f3f3f_《羊卓的杨的算法笔记》_Quentin
- 8086芯片寄存器简介
- 支撑压力(刀哥指标)
- Nature子刊 | AI驱动的药物开发是一把双刃剑
- ESP32入门基础之ESP32作为 WIFI Station去连接wifi热点
- 账号批量注册软件开发启示录
热门文章
- javaXML方式传输图片
- 如何使用Linux下的dhclient获取IPv6地址
- python中导入模块是用哪个关键字_关于python导入模块import与常见的模块详解
- endnote无法导入文献
- Java里Swing的面板练习代码(2)
- Java开发:GUI编程
- 密码经济:比互联网经济更加安全、高效、自由的数字经济
- android vlayout 刷新,Android--vlayout和SmartRefreshLayout的刷新 cannot be cast to
- 【算法应用】关于工装检测的理解
- 常用的积分方法讨论(数学表达与代码整理)(龙格-库塔、中值积分、欧拉积分)