【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
来源:互联网 发布:按键精灵创建js对象 编辑:程序博客网 时间:2024/05/22 00:21
Description
Analysis
这道题很容易误入歧途:以为每列取平均最大的就是全局最大的。
我这个小doby就掉坑里了。
反例数据:
2 5
1 9
1 1
1 1
1 1
2 1
最优:每列只取一个;贪心:第一列全部取完了。
比赛时后来就方方方,毫无思路。。。
正解二分答案。
以后记住一点:毫无思路的题想想能不能二分转化为判定性问题。
二分答案,如果当前答案可行,则:
移项
那么这时候就可以贪心了,每一列选最大的,加起来看看是否大于零就行了。
Code
#include<cstdio>#include<vector>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef double db;const int N=100010,INF=1000000000;const db eps=1e-5;int n,m;vector<db> a[N];bool check(db x){ db t=0,mx; fo(i,1,n) { mx=-INF; fo(j,0,a[i].size()-1) mx=max(mx,a[i][j]-(j+1)*x); t+=mx; } return t>0;}int main(){ db x; scanf("%d %d",&n,&m); fo(i,1,n) { db sum=0; fo(j,1,m) { scanf("%lf",&x); sum+=x; a[i].push_back(sum); } } db l=0,r=INF; while(r-l>eps) { db mid=(l+r)/2; if(check(mid)) l=mid; else r=mid; } printf("%.4lf",l); return 0;}
0 0
- 【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
- JZOJ 4809 【NOIP2016提高A组五校联考1】挖金矿
- 【JZOJ 4811】【NOIP2016提高组 五校联考1】排队
- 【JZOJ 4812】【NOIP2016提高组 五校联考2】string
- 【JZOJ 4813】【NOIP2016提高组 五校联考2】running
- 【JZOJ 4814】【NOIP2016提高组 五校联考2】tree
- 【JZOJ 4806】【NOIP2016提高组 五校联考3】打工
- 【JZOJ 4817】【NOIP2016提高组 五校联考4】square
- 【JZOJ 4816】【NOIP2016提高组 五校联考4】label
- 【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
- 【JZOJ4809】【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- JZOJ4809. 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- 【NOIP2016提高A组五校联考1】挖金矿
- NOIP2016提高组 五校联考1 总结
- 线程与进程的区别
- java字节流字符流IO操作
- 洛谷 P1315 [NOIP2011 D2T3] 观光公交
- Android之内存泄露与内存管理
- 访问历史API
- 【JZOJ 4809】【NOIP2016提高组 五校联考1】挖金矿
- JAG Practice2016-C-We don't wanna work!-模拟
- 【JZOJ 4811】排队
- 【NOIP提高组五校联考】排队
- crontab用法与实例
- 一张图看懂ImageView的ScapeType属性
- 我的JAVA初学之路----List集合和Set集合(上)
- 字符识别OCR研究一(模板匹配&BP神经网络训练)
- Struts2【三】