主序列 題解 2019 10 14

2022-04-10 04:19:02 字數 2061 閱讀 5155

問題描述】

有乙個主序列,以及另外m個序列。請你判斷這些序列是否是主序列刪除若

幹個數字之後得到的。

【輸入格式】

輸入的第一行包含乙個整數n,代表主序列的長度。接下來一行包含?個空

格分隔的整數,代表主序列。

第三行包含乙個整數m,代表需要判斷的序列個數。每個序列用兩行描述,

第一行給出其長度li ,第二行包含li 個空格分隔的整數,代表這個序列。

【輸出格式】

對於每個需要判斷的序列,輸出一行 yes 或者 no,代表序列是否是由主序

列刪除若干個數字後得到的。

【樣例輸入】

71 5 4 5 7 8 645

1 5 5 8 6

32 2 2

35 7 8

41 5 7 4

【樣例輸出】

暴力直接對比兩個序列竟然有40分?!

震驚~我的**:

#include#include

#include

#include

using

namespace

std;

int b[1000005

];int t[1000005

];int a[1000005

];int k[1000005

];int

n,t,n;

bool

flag;

inline

intread()

while(ch>='

0'&&ch<='9'

) s=(s<<3)+(s<<1)+(ch^48),ch=getchar();

return s*w;

}int

main()

if(flag)

else haha++;

if(haha==n+1||tot==n+1)break

; }

if(tot!=n+1)flag=false

; }

if(flag)cout<

yes"

;

else cout<

; cout

<

; }

fclose stdin;

fclose stdout;

return0;

}/*71 5 4 5 7 8 645

1 5 5 8 6

32 2 2

35 7 8

41 5 7 4

*/

view code

思路的話

大概就是有點貪心的感覺了,,

感性理解一下

孫土蛋還是nb呀

#include #include 

const

int n = (int

)1e6;

//const int size = (int)24e6;

struct

node q[n + 1

];int s[n + 1], p[n + 1], st[n + 1], len[n + 1], h[n + 1], cnt = 0

;int

n, m;

bool v[n + 1

];//

char inbuf[size], *ip = inbuf;

//inline int read()

inline

void addnode(int x, int s, int

p) int

main()

for (int i = 1; i <= n; ++i)

}for (int i = 1; i <= m; ++i)

fclose(stdin);

fclose(stdout);

return0;

}

view code

題解 括號序列 棧

可以猜到,ssw02爆0了 ssw02要懟一下 y 資料和標程都是反的,題還換錯了一道,t2做了一半換題意,s emmm 題目出現了九條老師.然後發現一句經典,不要先開題面 有九條 我妻 輸入 就是一行字串了 輸出 就是方案數了 我們先用棧來判斷是否合法,想著騙分,然後 咦?這個東西,可以簡化吧。然...

題解 出棧序列統計

描述 棧是常用的一種資料結構,有n個元素在棧頂端一側等待進棧,棧頂端另一側是出棧序列。你已經知道棧的操作有兩種 push和pop,前者是將乙個元素進棧,後者是將棧頂元素彈出。現在要使用這兩種操作,由乙個操作序列可以得到一系列的輸出序列。請你程式設計求出對於給定的n,計算並輸出由運算元序列1,2,n,...

題解 最長公共子串行

描述 乙個給定序列的子串行是在該序列中刪去若干元素後得到的序列。確切地說,若給定序列x 則另一串行z 是x的子串行是指存在乙個嚴格遞增的下標序列,使得對於所有j 1,2,k有 xij zjx z jxij zj 例如,序列z 是序列x 的子串行,相應的遞增下標序列為 2,3,5,7 給定兩個序列x和...