首页 > 其他分享 >w5-1 序列合并

w5-1 序列合并

时间:2023-04-19 22:56:10浏览次数:34  
标签:pq int 合并 w5 100000 序列 include now1 now2

 方法一:

#include <iostream>
#include <queue>
using namespace std;
//排序模拟,tle做法
int now1[100000],now2[100000];
int main() {
    int n;
    priority_queue<int,vector<int>,greater<int> >pq;
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>now1[i];
    }
    for(int i=0;i<n;++i){
        cin>>now2[i];
    }
    for(int i=0;i<n;++i){
        for(int j=0;j<n;++j){
            pq.push(now1[i]+now2[j]);
        }
    }
    int num=0;
    while(num!=n){

        cout<<pq.top()<<" ";
        pq.pop();
        num++;

    }
    return 0;
}

方法二:

#include <iostream>
#include <queue>
using namespace std;
//2 6 6
//1 4 8
//思路:由于一次性做成表会导致空间爆,因此采用动态存储
//先将第一列存入pq,用pair.second记录行数,删去最小数并将其所在行下一个数加入pq
//3 6  10
//7 10 14
//7 10 14
int now1[100000],now2[100000],num[100000];//num表示每一行访问到第几个数
int main() {
    int n;
    priority_queue<pair<int,int>,vector<pair<int, int>>,greater<pair<int, int>>>pq;
    //注:pair 可以直接用比较运算符比较大小,两个pair 首先比较first的大小,first相等后然后在比较second的大小
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>now1[i];
    }
    for(int i=0;i<n;++i){
        cin>>now2[i];
    }
    for(int i=0;i<n;++i){//初始化:第一列
        pq.push(pair<int,int>(now1[i]+now2[0],i));
    }
    while(n--){
        cout<<pq.top().first<<' ';
        int i=pq.top().second;
        pq.pop();
        pq.push(pair<int,int>(now1[i]+now2[++num[i]],i));//插入该行的下个值

    }

    return 0;
}

 

标签:pq,int,合并,w5,100000,序列,include,now1,now2
From: https://www.cnblogs.com/lijunjie03/p/17334971.html

相关文章

  • [Leetcode]合并两个有序链表
    力扣链接依次比较,取小的尾插:初步代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*mergeTwoLists(structListNode*list1,structListNode*list2){structListNode*......
  • 通过fastaread读取DNA序列并进行检测matlab仿真
    1.算法描述fastareadfastaread函数是matlab生物信息学工具箱内置的一个函数,给我们的使用上带来了巨大的方便。对于基因DNA序列,转录RNA序列和表达蛋白序列的读取非常方便。使用语法为:p53nt=fastaread('p53nt.txt')%p53nt.txt为fasta格式存储序列的文件返回的p53nt......
  • w5-4 验证栈序列
     #include<iostream>#include<stack>usingnamespacestd;intq,n,a[100000],b[100000],num;intmain(){cin>>q;stack<int>s;for(intj=0;j<q;++j){cin>>n;num=0;for(inti=0;i<n;++......
  • DNA序列数据处理
    dna序列数据处理通常包括以下步骤:数据预处理:首先,需要对原始dna序列数据进行预处理。其中包括测序错误的纠正、碱基质量过滤和去除低质量序列等。这个阶段是非常重要的,因为数据预处理的质量直接影响后续的特征提取和模型学习。特征提取:在dna序列分析中,会涉及到许多不同的特征......
  • Kraken序列分类算法
    当然可以!kraken是一种流行的高效序列分类器,使用k-mer(k个连续碱基组成的子串)方法对不同分类下的序列进行分类。以下是kraken序列分类算法简要说明:数据预处理首先,kraken会将参考数据库中的序列分割为固定长度的k-mers,这些k-mer会被记录到一个查询表中。样品序列匹配krake......
  • java -- 缓冲流、转换流、序列化流
    缓冲流缓冲流,也叫高效流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。字节缓......
  • javasec(四)序列化与反序列化基本原理
    title:javasec(四)序列化与反序列化基本原理tags:-javasec-反序列化categories:-javaseccover:'https://blog-1313934826.cos.ap-chengdu.myqcloud.com/blog-images/1.jpeg'feature:falsedate:2023-04-1816:02:20这篇文章介绍java序列化与反序列化基本原......
  • javasec(五)URLDNS反序列化分析
    这篇文章介绍URLDNS就是ysoserial中⼀个利⽤链的名字,但准确来说,这个其实不能称作“利⽤链”。因为其参数不是⼀个可以“利⽤”的命令,⽽仅为⼀个URL,其能触发的结果也不是命令执⾏,⽽是⼀次DNS请求。ysoserial打包成jar命令mvncleanpackage-DskipTests,刚刚入门所以用这条链作......
  • python反序列化
    这篇文章介绍python反序列化。0X00前言本篇文章搬运大佬k0rz3n的研究文章,写的特别好,存下来学习一下。0X01Python的序列化和反序列化是什么Python的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。1.......
  • 一个使用公式化序列分类的EAL学术写作辅助环境
    一个使用公式化序列分类的EAL学术写作辅助环境(AnassistiveenvironmentforEALacademicwritingusingformulaicsequencesclassification)★★实验结果实验组、对照组和两维度分析:对照组学生:使用短语库;实验组学生:使用提出的应用程序(ARP)作为辅助工具。  一、摘要......