美文网首页
2019-05-09 团体程序设计天梯赛-练习集 L2-002

2019-05-09 团体程序设计天梯赛-练习集 L2-002

作者: 快意江湖 | 来源:发表于2019-05-09 15:11 被阅读0次

    /*

    ****************本题大致思路:*****************

    首先是数据存储,用map存 第一个数据(string)是键  2,3数据(class)是值

    然后遍历这个“链表”

    对于每个链表的数据,首先看此数据之前出现过没(绝对值一样就算出现过),出现过就添加到vector中,

    没有就把绝对值添加到set中(此set就能看出哪个数据出现过),并且输出

    最后遍历输出vector

    */

    #include<iostream>

    #include<vector>

    #include<set>

    #include<map>

    #include<string>

    #include<algorithm>

    #define iIN(L,R) for(int i=L;i<R;i++) 

    using namespace std;

    class Data

    {

    public:

    int num;

    string next;

    Data(){} //这个构造函数必须有

    Data(int n1,string n2){

    num=n1;

    next=n2;

    }

    void operator=(Data d){

    this->num=d.num;

    this->next=d.next;

    }

    };

    map<string,Data> M;//核心数据结构

    vector<string> vec;

    vector<int>    vec2;//两个vector 装题目中所说的被删除的链表

    set<int> S;        //装第一次出现的num的绝对值

    int main()

    {

    string now;

    int N;

    string key;

    int num;

    string snum;

    string next;

    Data box;

    stringstream water;

    cin>>now>>N;

    iIN(0,N){

    cin>>key>>num>>next;

    Data *d=new Data(num,next);

    M[key]=*d;

    }

    int mark=0;

    while(1){

    if(now=="-1")

    {

    cout<<" "<<-1<<endl;

    break;

    }

    box=M[now];

    num=box.num;

    next=box.next;

    if(S.count(abs(num))==0){ //第一次出现

    if(mark){ //控制输出格式

    cout<<" "<<now<<endl<<now<<" "<<num;

    }

    else

    {

    mark=1;

    if(now!="-1")

    cout<<now<<" "<<num;

    }

    S.insert(abs(num));

    }

    else{                //非第一次

    vec.push_back(now);

    vec2.push_back(num);

    }

    now=next;

    }

    mark=0;

    iIN(0,vec.size()){

    if(mark){

    cout<<" "<<vec[i]<<endl<<vec[i]<<" "<<vec2[i];

    }

    else{

    mark=1;

    cout<<vec[i]<<" "<<vec2[i];

    }

    }

    if(vec.size()>0)

    cout<<" "<<-1<<endl;

    return 0;

    }

    相关文章

      网友评论

          本文标题:2019-05-09 团体程序设计天梯赛-练习集 L2-002

          本文链接:https://www.haomeiwen.com/subject/omvwoqtx.html