L2-002 链表去重 (25 分) (模拟)
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184
题目:
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。
输入格式:
输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤,为结点总数)。一个结点的地址是非负的 5 位整数,空地址 NULL 用 − 来表示。
随后 N 行,每行按以下格式描述一个结点:
地址 键值 下一个结点
其中地址是该结点的地址,键值是绝对值不超过1的整数,下一个结点是下个结点的地址。
输出格式:
首先输出去重后的链表,然后输出被删除的链表。每个结点占一行,按输入的格式输出。
输入样例:
00100 5
99999 -7 87654
23854 -15 00000
87654 15 -1
00000 -15 99999
00100 21 23854
输出样例:
00100 21 23854
23854 -15 99999
99999 -7 -1
00000 -15 87654
87654 15 -1
题意:
如题 思路:
用结构体模拟 每个结点的地址为结构体的下标 价值为w 下一个结点为nx 按照题意模拟
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm> using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int maxn=1e5+;
int st,n,x;
int vis[maxn],ans1[maxn],ans2[maxn]; struct node{
int w,nx;
}kk[maxn]; int main(){
memset(vis,,sizeof(vis));
scanf("%d%d",&st,&n);
for(int i=;i<=n;i++){
scanf("%d",&x);
scanf("%d%d",&kk[x].w,&kk[x].nx);
}
int cnt1=,cnt2=;
for(int i=st;i!=-;i=kk[i].nx){
int tmp=abs(kk[i].w);
if(vis[tmp]==){
vis[tmp]=;
ans1[++cnt1]=i;
}
else ans2[++cnt2]=i;
}
for(int i=;i<=cnt1;i++){
if(i==cnt1) printf("%05d %d -1\n",ans1[i],kk[ans1[i]].w);
else printf("%05d %d %05d\n",ans1[i],kk[ans1[i]].w,ans1[i+]);
} for(int i=;i<=cnt2;i++){
if(i==cnt2) printf("%05d %d -1\n",ans2[i],kk[ans2[i]].w);
else printf("%05d %d %05d\n",ans2[i],kk[ans2[i]].w,ans2[i+]);
}
return ;
}
L2-002 链表去重 (25 分) (模拟)的更多相关文章
- L2-022 重排链表 (25 分)
L2-022 重排链表 (25 分) 给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯.例 ...
- L2-002. 链表去重(数组模拟)
L2-002. 链表去重 因为数值比较小,所以直接用数组来模拟 #include<cstdio> #include<cstring> #include<iostream& ...
- L2-2 重排链表 (25 分)
给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯.例如:给定L为1→2→3→4→5→6,则输出 ...
- PAT B1025 反转链表 (25 分)
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...
- L2-2 重排链表 (25 分)
给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯.例如:给定L为1→2→3→4→5→6,则输出 ...
- L2-002 链表去重 (25 分)
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在 ...
- PAT 甲级 1052 Linked List Sorting (25 分)(数组模拟链表,没注意到不一定所有节点都在链表里)
1052 Linked List Sorting (25 分) A linked list consists of a series of structures, which are not ne ...
- 天梯 L2 链表去重
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...
- 团体程序设计天梯赛L2-002 链表去重 2017-03-22 18:12 25人阅读 评论(0) 收藏
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- L2-002. 链表去重---模拟
https://www.patest.cn/contests/gplt/L2-002 L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 ...
随机推荐
- koa2源码解读及实现一个简单的koa2框架
阅读目录 一:封装node http server. 创建koa类构造函数. 二:构造request.response.及 context 对象. 三:中间件机制的实现. 四:错误捕获和错误处理. k ...
- Windows 10 安装过程中,在自定义登录页面进入审核模式
按ctrl-f3进入审核模式 https://msdn.microsoft.com/zh-cn/windows/hardware/commercialize/manufacture/desktop/b ...
- Entity Framework Core系列之DbContext(添加)
上一篇我们介绍了Entity Framework Core系列之DbContext,对DbContext有了概念上的了解,这篇将介绍DbContext添加数据 通过DbContext添加实体的主要方法 ...
- 安装inotify-tools监控工具
安装inotify-tools监控工具 yum install -y inotify-tools 2:查看inotify-tools包的工具程序 [root@dns3 ~]# rpm -ql inot ...
- git 版本管控 发布
https://www.cnblogs.com/charlesblc/p/6051569.html http://www.ruanyifeng.com/blog/2012/07/git.html 1. ...
- JDK环境配置(Windows)
JDK环境配置(Windows): 1.下载jdk版本: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...
- idea 配置 jdk tomcat
https://blog.csdn.net/cxjsnail/article/details/80018519 1. 安装IntelliJ IDEA IDEA 对maven有完美的支持,有强大的语法 ...
- Shell命令-文件及内容处理之vi、vim
文件及内容处理 - vi.vim 1.Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器 ...
- JarvisOJ Basic 握手包
得到的是一个.cap文件,我看着好像可以用wireshark打开,就试了一下 报错了,pcapfix上,得到了一个新的.cap文件,用wireshark打开,发现分析不出来 查了一下,有破解握手包的专 ...
- django系列6:模板
当前编辑的django页面,是默认的UI,如果想要改变页面展示,就需要用到模板. 模板的原理是这样的: 实际步骤: 1.编辑views.py,将template和content做好映射 from dj ...