Post

hdu1412.集合并集

![[Pasted image 20241030150843.png]]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    fstream infile("in.txt");
    
    int n,m;
    infile>>n>>m;
    vector<int>vec1(n);
    vector<int>vec2(m);
    vector<int>vec3(n+m+1);
    vec3[n+m]=0;
    vector<int>result(n+m);

    for(int i=0;i<vec1.size();i++){
        infile>>vec1[i];
    }

    for(int i=0;i<vec2.size();i++){
        infile>>vec2[i];
    }

    for(int i=0;i<n;i++){
        vec3[i]=vec1[i];
    }

    int j=0;
    for(int i=n;i<n+m;i++){
        vec3[i]=vec2[j];
        j++;
    }

   sort(vec3.begin(),vec3.end(),greater<int>());

    for(int i=0;i<n+m;i++){
        if(vec3[i]!=vec3[i+1]){
            result[result.size()-1-i]=vec3[i];
        }
    }
    
    for(int i=0;i<result.size();i++){
    	if(result[i]!=0){
			cout<<result[i]<<" ";
		}
	}

    return 0;
}
  • **使用vector的排序算法sort,必须包含<algorithm>文件

  • sort 默认是升序的,不必写第三个参数,即sort(vec3.begin(),vec3.end())即可;
    如果想降序排序,就把第三个参数换成greater<int>()

    1
    
    sort(vec3.begin(),vec3.end(),greater<int>());
    
This post is licensed under CC BY 4.0 by the author.