Median(hdu7029)
原题链接
题目描述
输入描述
输出描述
输入样例
3
4 4
2 4 3 1
4 3
1 3 4
4 3
2 3 4
输出样例
YES
YES
NO
题目大意:给定一个长度为 m 的数组 b,现在需要将 1 ~ n 区间内的 n 个数字分为 m 个集合(可以不连续,但需要满足单调性),并满足第 i 个集合的中间数等于数组 b 中的第 i 位,问是否可完成该操作。
由于中间数的性质,可以知道在一个集合的中间数的两侧添加相同的数时,该集合的中间数的值并不会改变,如:1 3 5 变换为 1 2 3 4 5,因此可借助该性质两两消去多余的数。同时由于中间数的特殊性,即:长度为偶数 n 的中间数的下标为 n / 2,因此在长度为奇数的序列的中间数之后添上一个数,也不会改变该序列的中间数,如:1 2 3 变换为 1 2 3 4 。
由题意不难得到,数组 b 中的数必定被分在 m 个不同的集合内,因此仅需考虑 1 ~ n 中除数组 b 内的其他元素如何分配。由于两两消除不影响中间数的性质,因此可维护最长的不在区间内的序列,若该序列长度大于其余序列的长度总和,说明两两消除后该序列一定还有残留,此时可判断在该序列前存在的数组 b 中元素的数量,若该数量小于该序列剩下的长度,则无法组成,反之则可以组成。
参考代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+10;ll n,k,ans;
bool cmp(int a,int b){return a>b;
}
int b[N];
int main(){int t;cin>>t;while(t--){int n,m;cin>>n>>m;for(int i=1;i<=m;i++)cin>>b[i];sort(b+1,b+1+m);int len=0,sum=0,pos=0;for(int i=1;i<=m;i++){sum+=(b[i]-b[i-1]-1);if((b[i]-b[i-1]-1)>=len){len=b[i]-b[i-1]-1;pos=i-1;}}if(b[m]<n){sum+=(n-b[m]);if((n-b[m])>=len){len=n-b[m];pos=m;}}if(2*len-sum-pos>0){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;}}return 0;
}
Median(hdu7029)相关推荐
- Average and Median(500)dp,二分 AtCoder Beginner Contest 236
E - Average and Median / Time Limit: 2 sec / Memory Limit: 1024 MB Score : 500 points Problem Statem ...
- Median(POJ-3579)
Problem Description Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair ...
- 用Scikit-learn和TensorFlow进行机器学习(二)
文章目录 一个完整的机器学习项目 一.真实数据 二.项目概述 1.划定问题 2.选择性能指标(损失函数) (1)回归任务 (2)平均绝对误差(MAE,Mean Absolute Error) (3)范 ...
- 机器学习中数据预处理——标准化/归一化方法(scaler)
由于工作问题比较忙,有两周没有总结一下工作学习中遇到的问题. 这篇主要是关于机器学习中的数据预处理的scaler变化. 工作中遇到的问题是:流量预测问题,拿到的数据差距非常大,凌晨的通话流量很少几乎为 ...
- 数据挖掘(pandasxgboost)
类别特征处理 1.利用pd.get_dummies方法将类别特征进行编码.使用get_dummies进行one-hot编码(查看时间字段的类型,如果不是datetime类型需要to_datetime转 ...
- 数据竞赛实战(1)——足球运动员身价估计
前言 1,背景介绍 每个足球运动员在转会市场都有各自的价码.本次数据练习的目的是根据球员的各项信息和能力来预测该球员的市场价值. 2,数据来源 FIFA2018 3,数据文件说明 数据文件分为三个: ...
- seaborn可视化displot绘制直方图(histogram)并通过axvline函数在直方图中添加中位数(median)竖线(自定义中位数竖线的线条形式)
seaborn可视化displot绘制直方图(histogram)并通过axvline函数在直方图中添加中位数(median)竖线(自定义中位数竖线的线条形式) 目录
- 异常值检测 —— MAD(median absolute deviation)
MAD 定义为,一元序列 XiXiX_i 同其中位数偏差的绝对值的中位数(deviation,偏差本身有正有负): MAD=median(|Xi−median(X)|)MAD=median(|Xi−m ...
- 如何使用逆分布函数模拟MEDIAN()聚合函数
一些数据库足够强大,可以实现MEDIAN()聚合函数. 请记住, MEDIAN()与MEAN()或AVG() (平均)略有不同(并且通常更有用). 虽然平均值是按SUM(exp) / COUNT(ex ...
最新文章
- 程序员Web面试之前端框架等知识
- .NET Core:面向未来的开源跨平台开发技术
- Android之自定义带圆角的水纹波效果
- python爬虫开发 从入门到实战_python网络爬虫从入门到实战开发
- RAC 之 RMAN 备份
- C语言课后习题(19)
- 在delphi中嵌入腳本語言--(譯)RemObjects Pascal Script使用說明(1)(譯)
- 全球芯片厂商今年设备支出将再增10% 超过980亿美元
- 【Flutter】微信项目实战【01】基本框架搭建
- 从零基础入门Tensorflow2.0 ----八、39.4. gpu4
- python爬虫异步加载图片_python爬虫程序 异步加载爬虫knewone.com实例
- 使用电脑替代人力的几个优点
- Django图书商城项目/图书管理/毕业设计
- Linux下Libtorch运行出现free(): invalid pointer报错
- ezcad旋转轴标刻参数_激光打标机软件ezcad中的曲线圆弧排文本参数说明及设置...
- 傻瓜式长文详细教程:无需u盘装系统(ubuntu、deepin双系统等)
- 软件测试-mocha入门
- 485终端电阻怎么接?485终端电阻接法解析
- 文件服务器 架构图,传奇世界服务端架构图(说明文件),适合新手看
- 2020!前端开发应知网站(墙裂推荐!)