博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jzoj4790 选数问题
阅读量:5356 次
发布时间:2019-06-15

本文共 552 字,大约阅读时间需要 1 分钟。

在麦克雷的面前有N个数,以及一个R*C的矩阵。现在他的任务是从N个数中取出R*C个,并填入这个矩阵中。矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值。现在,麦克雷想知道矩阵的最小法值是多少

采用二分+贪心策略

我们将r*c个数排序,显然,最优情况每一行必然是序列中一段连续的数字

二分可以接受的最大法值

那么判定合法的段数有没有r段即可

#include
#include
using namespace std;int s[500010],R,c,n;bool ok(int x){ int t=0; for(int i=0;i<=n-c;++i) if(s[i+c-1]-s[i]<=x){ i+=c-1; t++; } return t>=R;}int main(){ scanf("%d%d%d",&n,&R,&c); for(int i=0;i
>1; if(ok(m)) r=m; else l=m+1; } printf("%d\n",l);}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477275.html

你可能感兴趣的文章
Task 7 买书最低价格问题
查看>>
Selenium3+python自动化007-警告框
查看>>
html5 相同形状的图形进行循环
查看>>
springboot中文官方文档
查看>>
lamdba表达式
查看>>
ThreadLocal实现线程范围内共享
查看>>
多校HDU5723 最小生成树+dfs回溯
查看>>
ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
查看>>
关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】
查看>>
关于Entity Framework中的Attached报错的完美解决方案终极版
查看>>
Selenium之Web页面滚动条滚操作
查看>>
组合数据类型练习,英文词频统计实例上
查看>>
Uber回馈开源的一些软件
查看>>
day 3 修改haproxy.cfg 作业
查看>>
UIScrollView —— 缩放实现案例(二)
查看>>
【Qt】Qt Linguist介绍【转】
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>