PAT天梯賽 L2 002 鍊錶去重 STL

2021-08-17 14:28:28 字數 1659 閱讀 6647

題目鏈結

思路

用結構體 儲存 乙個結點的位址 值 和下乙個位址

然後從首位址開始 往下走 並且每個值的絕對值 都標記一下

並且 每次往下走的時候 都判斷一下 其值的絕對值 是否 已經被標記

如果被標記過 那麼 它就要加入到 重複的序列當中

如果 沒有被標記過 就要標記 然後加入到 未重複的序列

ac**

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define clr(a) memset(a, 0, sizeof(a))

#define pb push_back

using

namespace

std;

typedef

long

long ll;

typedef

long

double ld;

typedef

unsigned

long

long ull;

typedef pair pii;

typedef pair pll;

typedef pair psi;

typedef pair pss;

const

double pi = 3.14159265358979323846264338327;

const

double e = exp(1);

const

double eps = 1e-6;

const

int inf = 0x3f3f3f3f;

const

int maxn = 1e2 + 5;

const

int mod = 1e9 + 7;

struct node

temp;

map m;

map vis;

vector

v[2];

int ini, n;

void dfs(int add)

else

if (m[add].next != -1)

dfs(m[add].next);

}int main()

v[0].pb(m[ini]);

vis[abs(m[ini].value)] = 1;

ini = m[ini].next;

if (ini != -1)

dfs(ini);

if (v[0].size())

}if (v[1].size())

}}

天梯賽L2 002 鍊錶去重

problem description 給定乙個帶整數鍵值的鍊錶 l,你需要把其中絕對值重複的鍵值結點刪掉。即對每個鍵值 k,只有第乙個絕對值等於 k 的結點被保留。同時,所有被刪除的結點須被儲存在另乙個鍊錶上。例如給定 l 為 21 15 15 7 15,你需要輸出去重後的鍊錶 21 15 7,還...

天梯賽習題 L2 002 鍊錶去重

時間限制 300 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定乙個帶整數鍵值的單鏈表l,本題要求你編寫程式,刪除那些鍵值的絕對值有重複的結點。即對任意鍵值k,只有鍵值或其絕對值等於k的第乙個結點可以被保留。同時,所有被刪除的結點必須被儲存在...

L2 002 鍊錶去重

給定乙個帶整數鍵值的單鏈表l,本題要求你編寫程式,刪除那些鍵值的絕對值有重複的結點。即對任意鍵值k,只有鍵值或其絕對值等於k的第乙個結點可以被保留。同時,所有被刪除的結點必須被儲存在另外乙個鍊錶中。例如 另l為21 15 15 7 15,則你必須輸出去重後的鍊錶21 15 7 以及被刪除的鍊錶 15...