zoukankan      html  css  js  c++  java
  • HDU 1412 {A} + {B}

    刷水题。

    http://acm.hdu.edu.cn/showproblem.php?pid=1412

    给你两个集合,要求{A} + {B}.
    注:同一个集合中不会有两个相同的元素.
    Input
    每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.
    Output
    针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.
     
     
    求两个集合的和。

    我用的是vector,后来感觉应该用set的。

    就当熟悉stl的了。

    #include <stdio.h>
    #include <algorithm>
    #include <set>
    using namespace std;
    int main()
    {
    int first ,last;
    int n;
    while(scanf("%d %d",&first,&last)!=EOF)
    {
    set<int> nset;
    for(int i = 0 ; i < first+last ; ++i)
    {
    scanf("%d",&n);
    nset.insert(n);
    }
    set<int>::iterator iter = nset.begin();
    set<int>::iterator tmp = iter;

    for(; ++tmp != nset.end(); ++iter)
    {
    printf("%d ",*iter);
    }
    printf("%d\n",*iter);
    }
    return 0;
    }
    vector版
     1 #include <stdio.h>
    2 #include <algorithm>
    3 #include <vector>
    4 using namespace std;
    5 int main()
    6 {
    7 int first ,last;
    8 int n;
    9 while(scanf("%d %d",&first,&last)!=EOF)
    10 {
    11 vector <int> firstvect(0,first);
    12 vector <int> lastvect(0,last);
    13 for(int i = 0; i < first; ++i)
    14 {
    15 scanf("%d",&n);
    16 firstvect.push_back(n);
    17 }
    18 for(int i = 0; i < last; ++i)
    19 {
    20 scanf("%d",&n);
    21 lastvect.push_back(n);
    22 }
    23 std::sort(firstvect.begin(),firstvect.end());
    24 std::sort(lastvect.begin(),lastvect.end());
    25
    26 vector<int>::iterator firstiter = firstvect.begin();
    27 vector<int>::iterator seconditer = lastvect.begin();
    28 while((firstiter != firstvect.end())&&(seconditer !=lastvect.end()))
    29 {
    30 if(*firstiter < *seconditer)
    31 printf("%d ",*firstiter++);
    32 else {
    33 if(*firstiter == *seconditer)
    34 ++firstiter;
    35 printf("%d ",*seconditer++);
    36 }
    37 }
    38 while(firstiter != firstvect.end())
    39 {
    40 printf("%d ",*firstiter++);
    41 }
    42 while(seconditer !=lastvect.end())
    43 {
    44 printf("%d ",*seconditer++);
    45 }
    46 printf("\n");
    47 }
    48 }

    vector提示表示错误。应该是没到最后一个输出的时候,多了一个空格。

    要解决的比较麻烦,于是放弃。思想是最重要的。



  • 相关阅读:
    kubeadm init 时从本地私有仓库下载镜像
    Kubernetes 1.6新特性
    kukubeadm 1.6.1 + docker1.2.6 安装问题
    nginx 配置
    使用nginx替换Ingress
    Docker存储方式选型建议
    iptables相关
    kubenetes master使用curl 操作API
    kubernetes 一些基本的概念
    Codeforces Round #161 (Div. 2) D. Cycle in Graph(无向图中找指定长度的简单环)
  • 原文地址:https://www.cnblogs.com/westfly/p/2402316.html
Copyright © 2011-2022 走看看