【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
来源:互联网 发布:工厂百度关键词优化 编辑:程序博客网 时间:2024/06/10 14:55
题目描述
输入
输出
样例输入
4 3
4 3 3
5 1 6
2 6 1
3 2 9
样例输出
4.4286
数据范围
样例解释
解法
二分答案。
对于答案ans,如果每一列的最大贡献之和大于0,则ans合法;
每一列的最大贡献=
代码
#include<iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>#define ll long long#define ln(x,y) ll(log(x)/log(y))#define sqr(x) ((x)*(x))using namespace std;const char* fin="aP1.in";const char* fout="aP1.out";const ll inf=0x7fffffff;const ll maxn=100007;ll n,m,i,j,k,tot;double ans,l,r,mid;ll a[maxn];bool judge(double v){ int i,j,k; double tmp,tmd,maxx,sum=0; for (i=1;i<=n;i++){ tmp=tmd=maxx=0; bool bz=false; for (j=1;j<=m;j++){ tmp+=a[(i-1)*m+j]; tmd+=v; if (!bz || maxx<tmp-tmd){ bz=true; maxx=tmp-tmd; } } sum+=maxx; } return sum>=0;}int main(){ scanf("%d%d",&n,&m); tot=n*m; for (i=1;i<=tot;i++){ scanf("%d",&a[i]); } l=0; r=1000000000; while (r-l>1e-6){ mid=(l+r)/2; if (judge(mid)) l=mid; else r=mid; } printf("%.4lf",l); return 0;}
启发
求平均数可以使用二分把问题转化为判定性问题。
0 0
- 【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
- JZOJ4809. 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- JZOJ 4809 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- 【NOIP2016提高A组五校联考1】排队
- NOIP2016提高A组五校联考1总结
- 【NOIP2016提高A组五校联考1】总结
- NOIP提高组【JZOJ4809】挖金矿
- 【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
- 【NOIP提高组五校联考】挖金矿
- java 反射1 Class
- 五边形数定理的一种证明
- Q-Learning算法分析与代码实现
- java2实用教程第四-五章读后感
- ajax - 服务器响应
- 【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
- C#控制台基础 int类型的list中removeall用法示例
- Toolbar+RecyclerView进阶使用(仿淘宝列表、网格布局之间的切换)
- 商城之下拉刷新SwipeRefreshLayout控件介绍
- 198. House Robber
- C#之XML基础 XML干啥用的?为啥要学
- Android-blockly增加定制代码块(Custom Blocks)
- 【JZOJ4810】【NOIP2016提高A组五校联考1】道路规划
- Java 集合框架分析:线程安全的集合