3 条题解

  • 5
    @ 2023-7-25 15:04:52
    #include <iostream>
    using namespace std;
    struct Node
    {
        int  nxt;
    } node[1000005];
    int q, k, oper, x ,y;
    int main()
    {
        cin >> q;
        node[1].nxt = 0;
        for (int i = 1; i <= q; i++)
        {
            cin >> oper;
            if (oper == 1)
            {
                cin>>x>>y;
                node[y].nxt=node[x].nxt;
                node[x].nxt=y;
            }
            else if(oper == 2)
            {
            	cin>>x; 
                cout<<node[x].nxt<<endl;
            }
            else
            {
            	cin>>x;
            	node[x].nxt=node[node[x].nxt].nxt;
    		}
        }
        return 0;
    }
    //这原题 
    
    • 5
      @ 2023-7-6 16:22:16
      思路 这道题比较简单,根据题目要求在合适位置插入元素或者删除或者查询就可以,需要注意如果是查询到尾节点,需要输出0,所以开始时把节点1的nxt改为0,就可以完美解决了~
      代码
      
      #include <iostream>
      using namespace std;
      struct Node
      {
          int  nxt;
      } node[1000005];
      int q, k, oper, x ,y;
      int main()
      {
          cin >> q;
          node[1].nxt = 0;
          for (int i = 1; i <= q; i++)
          {
              cin >> oper;
              if (oper == 1)
              {
                  cin>>x>>y;
                  node[y].nxt=node[x].nxt;
                  node[x].nxt=y;
              }
              else if(oper == 2)
              {
              	cin>>x; 
                  cout<<node[x].nxt<<endl;
              }
              else
              {
              	cin>>x;
              	node[x].nxt=node[node[x].nxt].nxt;
      		}
          }
          return 0;
      }
      
      
      • 2
        @ 2024-4-6 9:32:05

        过辣!

        #include <iostream>
        #include <algorithm>
        #include <cmath>
        using namespace std;
        int q,doing,x,y;
        struct Node
        {
            int nxt;
        } node[1000005];
        int main()
        {
            cin>>q;
            node[1].nxt=0;
            for (int i=1;i<=q;i++)
            {
                cin>>doing>>x;//在这里输入x可以省2行呢! =)
                if (doing==1)
                {
                    cin>>y;
                    node[y].nxt=node[x].nxt;
                    node[x].nxt=y;
                }
                else if (doing==2)
                {
                    cout<<node[x].nxt<<endl;
                }
                else 
                {
                    node[x].nxt=node[node[x].nxt].nxt;
                }
            }
            return 0;
        }
        
        • 1

        信息

        ID
        253
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        (无)
        递交数
        836
        已通过
        427
        上传者