zoukankan      html  css  js  c++  java
  • 若干有序合并成依然有序的序列

    #if 1
    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cstdlib>
    #include <sstream>
    #include <iostream>
    #include <string>
    #include <vector>
    #include <list>
    #include <iostream>
    #include <algorithm>
    #include <numeric>
    #include <cstdlib>
    #include <cstdio>
    #include<stack>
    #include <string>
    #include <set>
    #include <sstream>
    #include <iterator>
    using namespace std;
    vector<int> MergeList(vector<int>  list1, vector<int>  list2){
        vector<int> result;
        int i = 0, j = 0;
        for (; i < list1.size() && j < list2.size();){
            if (list1[i] < list2[j]){
                result.push_back(list1[i]);
                    i++;
            }
            else{
                result.push_back(list2[j]);
                j++;
            }
        }
    
        while (i < list1.size()){
            result.push_back(list1[i]);
                i++;
        }
    
        while (j < list2.size()){
            result.push_back(list2[j]);
            j++;
        }
    
        return result;
    }
    vector<int>* Merge(vector<vector<int>> vect){
        vector<int> result;
        if (vect.size() < 1)
            return NULL;
        result = vect[0];
        for (int i = 1; i< vect.size(); i++){
            result = MergeList(result, vect[i]);
        }
        return &result;
    }
    
    vector<int> Merge1(vector<vector<int>>& vect){
        vector<int> result,result1;
        if (vect.size() < 1)
            return result;
        result = vect[0];
        
        for (int i = 1; i < vect.size(); i++){
            result1.resize(vect[i].size() + result.size());
            merge(vect[i].begin(), vect[i].end(), result.begin(), result.end(), result1.begin());
            result = result1;
        }
        return result;
    }
    
    vector<int> testSplit(string srcStr, const string& delim)
    {
        int nPos = 0;
        vector<int> vec;
        nPos = srcStr.find(delim.c_str());
        while (-1 != nPos)
        {
            string temp = srcStr.substr(0, nPos);
            vec.push_back(stoi(temp));
            srcStr = srcStr.substr(nPos + 1);
            nPos = srcStr.find(delim.c_str());
        }
        vec.push_back(stoi(srcStr));
        for (auto i:vec)
        {
            cout << i << endl;
        }
        return vec;
    }
    int main()
    {
        int num = 0, b = 0;
        string name,subname;
        cin >> num;
        vector<vector<int>> vvi(num);
        cin.ignore(199, '
    ');
        for (int i = 0;i <num;i++)
        {
            getline(cin, name);
            vvi[i]=testSplit(name,",");
            //cin.ignore(199, '
    ');
        }
        for (int i = 0; i < vvi.size();i++)
        {
            for (int j = 0; j < vvi[i].size();j++)
            {
                cout << vvi[i][j] << " ";
            }
            cout << endl;
        }
        vector<int> vi=Merge1(vvi);
        for (auto v:vi)
        {
            cout << v << " ";
        }
        cout << endl;
        system("pause");
    }
    #endif
  • 相关阅读:
    Codeforces 691A Fashion in Berland
    HDU 5741 Helter Skelter
    HDU 5735 Born Slippy
    HDU 5739 Fantasia
    HDU 5738 Eureka
    HDU 5734 Acperience
    HDU 5742 It's All In The Mind
    POJ Euro Efficiency 1252
    AtCoder Beginner Contest 067 C
    AtCoder Beginner Contest 067 D
  • 原文地址:https://www.cnblogs.com/bwbfight/p/11334130.html
Copyright © 2011-2022 走看看