【XJOI】NOIP2016提高组冲剌题1 T1 挖金矿
来源:互联网 发布:php json 储存数据 编辑:程序博客网 时间:2024/06/10 05:52
这是个数学题……
设第i列前缀和sum[i],每列选的深度为h[i],每列选的总和就是sum[i][h[i]]
平均值就是:
显然平均值>0
设平均值为x,移项则有:
能让这个式子成立的答案才是正确答案
能成立而且尽可能大的答案才是更优答案
于是就二分啦
//据说这是01分数规划 可是我并不会这个东西
//QAQ我就是当数学题做的呀
代码如下
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>using namespace std;const int MAXN = 110005;int h,n,num[MAXN];long long sum[MAXN];double l = 0,r,mid,s,mx;//一定注意精度int main(){ scanf("%d %d",&n,&h); for(int i = 1; i <= n; i ++) for(int j = 1; j <= h; j ++) { int k = (i - 1) * h + j;//二维抽象成一维以后的坐标 scanf("%d",&num[k]); if(num[k] > r) r = num[k]; if(j != 1) sum[k] = sum[k - 1] + num[k]; else sum[k] = num[k]; } l = 0; while(l + 0.000001 < r)//二分 { mid = (l + r) / 2; s = 0; for(int i = 1; i <= n; i ++) { mx = -2147483645; for(int j = 1; j <= h; j ++) mx = max(mx,sum[(i - 1) * h + j] - j * mid);//尽可能最大 s += mx; } if(s >= 0) l = mid; else r = mid; } printf("%.4lf",mid);//精度精度精度 return 0;}
2 0
- 【XJOI】NOIP2016提高组冲剌题1 T1 挖金矿
- XJOI NOIP2016提高组冲剌题1 T1:挖金矿(二分答案)
- 【XJOI】NOIP2016提高组冲剌题1
- 【XJOI】NOIP2016提高组冲剌题1
- 【XJOI】NOIP2016提高组冲剌题1 T3 排队
- 【XJOI】NOIP2016提高组冲剌题1 T2 道路规划
- 【日常被虐】【XJOI】NOIP2016提高组冲剌题1
- XJOI NOIP2016提高组冲剌题1 T2:道路规划(LIS)
- XJOI NOIP2016提高组冲剌题1 T3:排队(堆+倍增)
- 【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- JZOJ 4809 【NOIP2016提高A组五校联考1】挖金矿
- JZOJ4809. 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- XJOI NOIP2016提高组冲剌题2 T3:tree(树形DP+背包)
- 二叉树的操作3非递归算法求二叉树的高度
- mysql主从复制
- STL相关算法部分源代码学习
- 云帮社区版迎来10.25更新档
- 1020. 月饼 (25)
- 【XJOI】NOIP2016提高组冲剌题1 T1 挖金矿
- USB-to-serial 设备无法启动 代码(10)
- The list of sources could not be read.
- poj 1054 The Troublesome Frog 枚举+二分搜索
- 解决字符集乱码方法集合
- Android开发——布局性能优化的一些技巧(一)
- Python模块包中__init__.py文件的作用
- pip更换软件镜像源
- 牛客网 - 剑指Offer - 考点:链表 题目:从尾到头打印链表