BZOJ5090: [Lydsy1711月赛]组题(01分数规划)
5090: [Lydsy1711月赛]组题
Time Limit: 1 Sec Memory Limit: 256 MB
Submit: 785 Solved: 186
[Submit][Status][Discuss]
Description
Input
Output
输出一个既约分数p/q或-p/q,即平均难度系数的最大值。
Sample Input
1 4 -2 -3 6
Sample Output
HINT
Source
思路:01分数规划,二分平均值,然后就是求最大的连续的长度不小于K的值,然后由于是需要输出分子分母形式,我们在二分的同时记录“和”与“长度”,最后约分输出即可。
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define ll long long
using namespace std;
const int maxn=;
int a[maxn],N,K; double b[maxn]; ll A,B,sum[maxn];
bool check(double Mid)
{
rep(i,,N) b[i]=b[i-]+a[i]-Mid; int pos=;
rep(i,K,N) {
if(b[i]-b[pos]>=){
A=sum[i]-sum[pos];
B=i-pos; return true;
}
if(b[i-K+]<b[pos]) pos=i-K+;
}return false;
}
int main()
{
scanf("%d%d",&N,&K);
double L=-,R=,Mid; int num=;
rep(i,,N) scanf("%d",&a[i]),;
rep(i,,N) sum[i]=sum[i-]+a[i];
while(num--){
Mid=(L+R)/;
if(check(Mid)) L=Mid;
else R=Mid;
}
if(A<) putchar('-'),A=abs(A);
ll g=__gcd(A,B);
printf("%lld/%lld\n",A/g,B/g);
return ;
}
但是不知道为什么我自己的check函数是WA的,难道是delta一直做加减法引起的精度问题?
bool check(double Mid)
{
rep(i,,N) b[i]=(double)a[i]-Mid; int head=; double delta=;
rep(i,,N) {
delta+=b[i];
while(i-head+>K&&b[head]<) delta-=b[head++];
if(i-head+>=K&&delta>=){
A=sum[i]-sum[head-]; B=i-head+;
return true;
}
}return false;
}
BZOJ5090: [Lydsy1711月赛]组题(01分数规划)的更多相关文章
- bzoj5090 [Lydsy1711月赛]组题 分数规划
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5090 题解 令 \(s_i\) 表示 \(a_i\) 的前缀和. 那么平均难度系数就是 \[ ...
- bzoj5090[lydsy11月赛]组题
裸的01分数规划,二分答案,没了. #include<cstdio> #include<algorithm> using namespace std; const int ma ...
- 【Earthquake, 2001 Open 】 0-1 分数规划
71 奶牛施工队一场地震把约翰家园摧毁了,坚强的约翰决心重建家园.约翰已经修复了 N 个牧场,他需要再修复一些道路把它们连接起来.碰巧的是,奶牛们最近也成立了一个工程队,专门从事道路修复.而然,奶牛 ...
- 【poj 2976】Dropping tests(算法效率--01分数规划 模版题+二分){附【转】01分数规划问题}
P.S.又是一个抽时间学了2个小时的新东西......讲解在上半部分,题解在下半部分. 先说一下转的原文:http://www.cnblogs.com/perseawe/archive/2012/05 ...
- 【转】[Algorithm]01分数规划
因为搜索关于CFRound277.5E题的题解时发现了这篇文章,很多地方都有值得借鉴的东西,因此转了过来 原文:http://www.cnblogs.com/perseawe/archive/2012 ...
- Dropping tests [POJ2976] [01分数规划]
Description 今年有 n 场 ACM-ICPC 竞赛,小明每场都有资格参加.第 i 场竞赛共有 b[i] 道题.小明预测第 i场他能做出 a[i] 道题.为了让自己看着更“大佬”一些,小明想 ...
- [转]01分数规划算法 ACM 二分 Dinkelbach 最优比率生成树 最优比率环
01分数规划 前置技能 二分思想最短路算法一些数学脑细胞? 问题模型1 基本01分数规划问题 给定nn个二元组(valuei,costi)(valuei,costi),valueivaluei是选择此 ...
- 2018年东北农业大学春季校赛 I wyh的物品【01分数规划/二分】
链接:https://www.nowcoder.com/acm/contest/93/I来源:牛客网 题目描述 wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个, ...
- POJ - 2976 Dropping tests(01分数规划---二分(最大化平均值))
题意:有n组ai和bi,要求去掉k组,使下式值最大. 分析: 1.此题是典型的01分数规划. 01分数规划:给定两个数组,a[i]表示选取i的可以得到的价值,b[i]表示选取i的代价.x[i]=1代表 ...
随机推荐
- 【PGM】Representation--Knowledge Engineering,不同的模型表示,变量的类型,structure & parameters
Part 1. 重要的区别: Template based vs. specific Directed vs. undirected Generative vs. discrimina ...
- Android 压力测试工具Monkey
原文地址http://www.syhm52.com/tools/17.html 一.Monkey定义探索软件测试工具有哪些,本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试 ...
- 【运维技术】windows安装apache服务器,实现域名对应端口的解析跳转
linux 安装参考搭建dede项目的功能 windows 安装虚拟机的指南参考:http://jingyan.baidu.com/article/29697b912f6539ab20de3cf8.h ...
- Java学习笔记之MyEclipse 2017 CI 7、CI 8、CI 9和CI 10的安装与激活
0x00 前言 本文介绍MyEclipse 2017 CI 7.CI 8.CI 9和CI 10的安装与激活. 重要提示:此方法理论上应该能激活MyEclipse 2017 CI所有系列,即激活方法是通 ...
- Apache HttpClient4使用教程
基于HttpClient 4.5.2 执行GET请求 CloseableHttpClient httpClient = HttpClients.custom() .build(); Closeable ...
- poj3421 X-factor Chains(重复元素的全排列)
poj3421 X-factor Chains 题意:给定正整数$x(x<=2^{20})$,求$x$的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的子序列的个数. ...
- Ubuntu桌面环境安装
图形程序安装 运行StartX命令检查是否已安装,若提示未安装则执行: sudo apt-get install xinit 环境管理器 GNOME: sudo apt-get install gdm ...
- Vim 操作命令不完全汇总
.命令:"重复上次修改": x命令:删除光标下的字符: u命令:撤销上次修改: dd命令:删除整行: >G命令:增加从当前行到文档末尾处的层级缩进: $命令:把光标移至行尾: ...
- git commit时加上Signed-off-by信息
git commit -s -m "descriptions about the code" 只要加入-s参数即可自动加上Signed-off-by信息
- 【Java----正则关键字转义】
正则需要转义字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 问题现象: 替换URL格式的字符串时 ...