题目链接

https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184

视频讲解

https://www.bilibili.com/video/BV1y3411n7sK

思路

我们用一个map 记录地址映射,在键的位置记录当前地址,值的位置记录下一个地址的位置,然后我们用一个 vis 数组标记我们的值的绝对值是否被加入了 win 链表,如果没有加入那么我们就将其加入 loser 链表,这样的话就将链表去重了,最后实现一个打印操作即可,注意这里我们可以通过scanf的格式化输出%05d来方便我们补前缀0

代码

#include<bits/stdc++.h>
using namespace std;const int N = 1e6+10;
int n,s;
int a[N];
bool vis[N];map<int,int> mark;void print(vector<int> & V){int p,np;for(int i = 0,l = V.size();i < l; ++i) {p = V[i];if(i < l) np = V[i + 1];if(i == l - 1) printf("%05d %d -1\n",p,a[p]);else printf("%05d %d %05d\n",p,a[p],np);}
}int main()
{vector<int> win,loser;scanf("%d %d",&s,&n);int p,k,nex,np;for(int i = 1;i <= n; ++i) {scanf("%d %d %d",&p,&k,&nex);mark[p] = nex;a[p] = k;}p = s;while(p != -1) {if(vis[abs(a[p])]) loser.push_back(p);else win.push_back(p);vis[abs(a[p])] = true;p = mark[p];}print(win);print(loser);    return 0;
}

L2-002 链表去重(链表+模拟)相关推荐

  1. 【区块反转】【链表合并】【反转链表】【链表元素分类】【链表去重】【重排链表】

    目录 说明: 1110 区块反转 输入格式: 输出格式: 输入样例: 输出样例: 1105 链表合并 输入格式: 输出格式: 输入样例: 输出样例: 1025 反转链表 输入格式: 输出格式: 输入样 ...

  2. 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个

    problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...

  3. L2-002. 链表去重

    L2-002. 链表去重 题目链接:https://www.patest.cn/contests/gplt/L2-002 代码如下: 1 #include<cstdio> 2 #inclu ...

  4. Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)

    Algorithm:C++语言实现之链表相关算法(链表相加.链表的部分翻转.链表划分.链表去重.重复元素全部删除) 目录 一.链表 1.1.链表相加 1.2.链表相加 2.1.链表的部分翻转 2.2. ...

  5. L2-002 链表去重-团体程序设计天梯赛GPLT

    题目来源:团体程序设计天梯赛-练习集 题目地址:L2-002 链表去重 题目大意 将链表数据域的值相同(包含绝对值相同)的节点去掉,然后将去掉的节点又重新组成一条链表,最后输出去重后的链表和被去掉的节 ...

  6. L2-002 链表去重 (25 分) 船新方法

    L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...

  7. l2-002 链表去重 (未解决)

    L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...

  8. 7-93 链表去重 (25 分)

    7-93 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一个链 ...

  9. 链表去重 保留第一个元素

    #include<iostream> using namespace std;struct Node {int nValue;Node *pNext; };void CreateList( ...

最新文章

  1. 北大清华合力打造通用人工智能实验班
  2. 推荐一位我的好朋友,8年码农,前鹅厂工程师!
  3. 京东某程序员哀叹:在大厂快待废了,出去面试问自己kafka,竟然全忘了!
  4. oracle归档日志参数reopen=30,Oracle 归档日志 -- CSDN 比较全的说明文档
  5. bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
  6. 电脑知识:关于电脑的十大误区,原来是这样!
  7. Python函数积累
  8. uboot源码——命令体系
  9. SpringBoot2 整合Nacos组件,环境搭建和入门案例详解
  10. loss值多少才算收敛_你了解TDS值是多少才是合格的吗?
  11. mpvue 中使用 iconfont
  12. Linux chapter 6
  13. 计算机打印服务总是自动关闭,打印机服务怎么使用 打印机服务自动关闭怎么解决...
  14. Chrome谷歌浏览器无法自动同步的解决办法
  15. pythonobject转int_在Python中将元组转换为int
  16. jQuery推箱子小游戏
  17. 使用 React 和 Vite 使用 Tauri 构建番茄钟
  18. 如何高效地阅读论文:三遍阅读法
  19. iOS 给APP评分无法连接到App Store解决方法
  20. 算法(并查集--合并集合)

热门文章

  1. 微信小程序---家庭记账本开发(三)
  2. Pytorch之认识Variable
  3. VMware for mac inside error solutions
  4. hystrix文档翻译之Dashboard
  5. Desktop imags
  6. AnnotationConfigBeanDefinitionParser are only available on JDK 1.5 and higher
  7. IOS底层数据结构--class
  8. WebService开发常用功能详解
  9. 设置返回IOS开发(26)之UITableView的页眉和页脚
  10. Nginx+Tomcat负载均衡群集