L2-002. 链表去重

因为数值比较小,所以直接用数组来模拟

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std; #define maxn 100005 struct node
{
int key;
int next;
}a[maxn]; int main()
{
int first,n,add;
scanf("%d%d",&first,&n);
for(int i=;i<n;i++)
{
scanf("%d",&add);
scanf("%d%d",&a[add].key,&a[add].next);
} //去重:直接再开两个数组记录去重后两个链表的地址
int num,vis[]={},t1=,t2=;
int a1[maxn],a2[maxn];
for(int i=first;i!=-;i=a[i].next)
{
num=abs(a[i].key);
if(!vis[num])
{
vis[num]=;
a1[t1++]=i;
}
else
a2[t2++]=i; } printf("%05d %d ",a1[],a[a1[]].key);
for(int i=;i<t1;i++)
{
printf("%05d\n",a1[i]);
printf("%05d %d ",a1[i],a[a1[i]].key);
}
printf("-1\n"); if(t2)
{
printf("%05d %d ",a2[],a[a2[]].key);
for(int i=;i<t2;i++)
{
printf("%05d\n",a2[i]);
printf("%05d %d ",a2[i],a[a2[i]].key);
}
printf("-1\n");
} return ;
}

L2-002. 链表去重(数组模拟)的更多相关文章

  1. L2-002. 链表去重(模拟)

    题意: 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点.即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留.同时,所有被删除的结点必须被保存在另外一个链 ...

  2. 【数组模拟的链表or复杂模拟】PAT-L2-002. 链表去重

    L2-002. 链表去重 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点.即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留.同时,所有被删除的结点必须 ...

  3. Problem UVA12657-Boxes in a Line(数组模拟双链表)

    Problem UVA12657-Boxes in a Line Accept: 725  Submit: 9255 Time Limit: 1000 mSec Problem Description ...

  4. UVA11988-Broken Keyboard(数组模拟链表)

    Problem UVA11988-Broken Keyboard Accept: 5642  Submit: 34937 Time Limit: 1000 mSec Problem Descripti ...

  5. C - Boxes in a Line 数组模拟链表

    You have n boxes in a line on the table numbered 1 . . . n from left to right. Your task is to simul ...

  6. B - Broken Keyboard (a.k.a. Beiju Text) 数组模拟链表

    You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem wi ...

  7. UVa 12657 Boxes in a Line(数组模拟双链表)

    题目链接 /* 问题 将一排盒子经过一系列的操作后,计算并输出奇数位置上的盒子标号之和 解题思路 由于数据范围很大,直接数组模拟会超时,所以采用数组模拟的链表,left[i]和right[i]分别表示 ...

  8. POJ - 3476 A Game with Colored Balls---优先队列+链表(用数组模拟)

    题目链接: https://cn.vjudge.net/problem/POJ-3476 题目大意: 一串长度为N的彩球,编号为1-N,每个球的颜色为R,G,B,给出它们的颜色,然后进行如下操作: 每 ...

  9. 数组模拟单向链表例题(UVa11988)

    指针的链表实现方式是,当前节点的next指向下一个节点,用数组模拟就是 for(int i=next[0];i!=0;i=next[i]) i=next[i]:就是一条链. 例题: 你有一个破损的键盘 ...

随机推荐

  1. ACM-选人问题(救济金发放)

    n(n<20)个人站成一圈,逆时针编号为1-n.有两个官员,A从1开始逆时针数,B从n开 始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个 官员停在同一个人上) ...

  2. python-flask-wtforms

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 集成学习二: Boosting

    目录 集成学习二: Boosting 引言 Adaboost Adaboost 算法 前向分步算法 前向分步算法 Boosting Tree 回归树 提升回归树 Gradient Boosting 参 ...

  4. ajax实现给JavaScript中全局变量赋值(转)

    原文地址:ajax实现给JavaScript中全局变量赋值 问题简化: <script type="text/javascript"> var a=1 ; functi ...

  5. kdbg安装使用教程(kali)

    一.背景说明 所谓调试者,主要就是下断点.观察变量,不是太复杂的事情也不用太复杂的工具. 但具体到linux平台而言,gdb本来多敲几下命令也不是不可以的事,但是一个屏幕就那么大打印出一堆东西又乱又看 ...

  6. Linux升级内核教程(CentOS7)

    1.查看当前内核版本 uname -r 2.通过yum升级内核 通过yum升级内核是最保险的升级方式,因为安装的是操作系统发行厂商验证过兼容性的rpm包,升级风险一般很小. yum install - ...

  7. get url img

    selenium     1● 了解selenium 这个是做 web页面测试,模拟用户测试   =====> pip install selenium 安装     2● django 用于接 ...

  8. java中JDBC连接数据库操作的基本步骤

    JDBC基本步骤 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lan ...

  9. compile openjdk7 in ubuntu OS

    success: openjdk version "1.7.0-internal"OpenJDK Runtime Environment (build 1.7.0-internal ...

  10. Saiku连接mysql数据库(二)

    Saiku连接Mysql数据库展示数据 参考链接:https://www.cnblogs.com/shirui/p/8573491.html 官方文档:https://media.readthedoc ...