首页 > 其他分享 >有时间再研究吧

有时间再研究吧

时间:2022-10-26 21:04:48浏览次数:42  
标签:sort begin temp 研究 pos int 时间 vec


#include<bits/stdc++.h>
using namespace std;
struct pt{
int x;
int pos;
pt(int a,int b):x(a),pos(b){}
};
struct cmp{ //重写比较函数
bool operator()(const pt a,const pt b){
return a.x>b.x;
}
};
int main(){
int k,n;
while(cin>>k>>n){
vector<vector<pt>>all;
vector<int> vec;
for(int i = 0;i<k;i++){
vector<pt>temp;
for(int j = 0;j<n;j++){
int x;
cin>>x;
pt p(x,i);
temp.push_back(p);
}
all.push_back(temp);
vec.push_back(0);
}
vector<pt> sort;
priority_queue<pt,vector<pt>,cmp> qu; //优先队列
for(int i = 0;i<k;i++)
qu.push(all[i][0]);
while(!qu.empty()){
pt temp = qu.top();
qu.pop();
sort.push_back(temp);
vec[temp.pos]++;
if(vec[temp.pos]<=n-1){
qu.push(all[temp.pos][vec[temp.pos]]);
}
}
for(int i = 0;i<vec.size();i++)
vec[i] = 0;
int begin = 0;
int end = 0;
int start = 0;
int final = 0;
int length = INT_MAX;
bool flg = false;
vec[sort[0].pos]++;
while(begin<sort.size()-1||end<sort.size()-1){
bool flgg = true;
for(int i = 0;i<k;i++)
flgg = flgg&&(vec[i]>=1);
if(!flgg&&end<sort.size()){
if(end<sort.size()-1)
end++;
vec[sort[end].pos]++;
}
if(!flgg&&end==sort.size()-1)
break;
if(flgg&&begin<sort.size()){
int x = sort[end].x-sort[begin].x;
if(x<length){
start = sort[begin].x;
final = sort[end].x;
length = x;
}
vec[sort[begin].pos]--;
if(begin<sort.size()-1)
begin++;
}
int a = 1;
}
cout<<start<<" "<<final<<endl;
}
system("pause");
return 0;
}

题目描述

给定k个有序数组, 每个数组有个N个元素,找出一个最小的闭区间,使其包含每个数组中的至少一个元素。 

给定两个区间[a,b], [c,d]: 

如果 b-a < d-c,则认为[a, b]是更小的区间;

如果 b-a == d-c,且a < c,则认为[a, b]是更小的区间。

输入描述:


K N x11 x12 x13 ... x1n ... xk1 xk2 xk3 ... xkn


输出描述:


两个数,分别为最小区间的左右边界


示例1

输入

复制


3 3 2 12 14 2 6 9 4 7 19


输出

复制


2 4


说明

标签:sort,begin,temp,研究,pos,int,时间,vec
From: https://blog.51cto.com/u_13121994/5798511

相关文章

  • 你的网站需要维护或更新暂停一段时间
       网站运行突然出现这个页面,我以为是网站里面多了一个页面,点击错了,可是仔细一看我运行的就是产品内容页。然后就以为是vs出问题,把vs关掉又开启,还是这样。原来这是.......
  • 并查集--同时修路得到的最短时间
    题目背景AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。题目描述给出A地区的村庄数NN,和公路数MM,公路是双向的。并告诉你每条公路的连......
  • linux查询当前时间
    查询当前时间echo$(date)查询当前日期,m为月,d为天,注意date后面有一个空格echo$(date+%Y-%m-%d)格式化输出日期+时分秒echo$(date"+%Y-%m-%d%H:%M:%S")......
  • 初中现行教材研究与对比分析
    摘要:据2011年版义务教育化学课程标准编写的现行初中化学教材在内容选择和呈现方式等方面略有不同。本文以现有文献及资源为背景对北京版、科粤版、仁爱版、人教版、鲁教版......
  • web服务器6npm包与时间格式化案例
    第三方模块和包是同一个概念包是基于内置模块封装出来的https://www.npmjs.com/ 全球最大包共享平台https://registry.npmjs.org/ 下载包服务器//定义格式化......
  • R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例|
    全文链接:tecdat.cn/?p=23792在最近的一篇文章中,我们展示了一个LSTM模型,通过假近邻(FNN)损失进行正则化,可以用来重建一个非线性动态系统 ( 点击文末“阅读原文”获取完整代......
  • 【408】时间分数记录
    年份时间(min)分数选择题错数做题日期200913412942022.10.18201017513412022.10.23201117013612022.10.26......
  • Java查询服务器(windows + linux)和系统各个指标数据 cpu、内存、硬盘、线程、请求错
    importjava.io.BufferedReader;importjava.io.File;importjava.io.IOException;importjava.io.InputStreamReader;importjava.lang.management.ManagementFactory......
  • 动作捕捉系统用于软体机械臂研究
    软体机械臂的传统刚性机械臂由于灵活度和安全性等原因,在一些狭窄复杂的特殊场景下不适合应用。随着新材料的不断发展,具有更高灵活性的软体机器人研究引发热潮。软体机器人......
  • ubuntu 用户密码到期时间设置
    一、基础知识/etc/login.defs文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户UID和GID的范围,用户的过期时间,密码的最大长度,等等。需要注意的是,该......