201809 3 元素選擇器

2021-10-07 03:26:40 字數 1685 閱讀 6899

對於標籤以及id選擇器,只需在g中找到對應tag、id符合的即可,對於後代選擇器x1 x2 x3…xn,我們首先找出最底層xn對應的元素,將它們放入vectorres的容器中,之後對於res中每乙個元素,設定乙個值y表示它還要尋找的祖先節點數,從這個元素向上依次尋找父節點,若找到節點滿足後代選擇器倒數第二個的元素,y–,接著向上尋找是否存在滿足後代選擇器倒數第二個元素的祖先節點…直到找到空的祖先節點或者y小於0。

若最後y小於0,說明找到了滿足後代選擇器中所有元素要求的元素。

對res中每個元素重複上述過程即可得到後代選擇器結果。

#include

#include

#include

#include

#include

using

namespace std;

struct directory};

int n,m,z;

string s,tag,id,com;

vector c;

vector

> g;

directory* cache;

vector

>

findans()

}else}}

else

int h=res.

size()

;for

(int k=

0;kif(z<

0) a.

push_back

(res[k]);

}}return a;

}int

main()

int l=g.

size()

-1;while

(g[l]

->cengshu!=num-

1) l--

; cache=g[l]

; directory *now=

newdirectory

(num,i,t,id,cache)

; g.

push_back

(now);}

//getchar();

//for(int j=0;jtag

(int j=

1;j<=m;j++

) vector

> ans;

ans=

findans()

; cout<

size()

;for

(int i=

0;isize()

;i++

) cout<<

" "<

->hangshu;

cout<

}return0;

}

201809 3 元素選擇器

ccf201809的第三題 題目就不粘上來了!設計思路 首先要用乙個結構體來儲存每一行文件,有等級 標籤以及id。其次需要注意的是標籤不區分大小寫!對於選擇器,大致可以分為兩種,第一種是只有單個的標籤或者id,這種直接遍歷文件即可 也就是我們處理過後的結點陣列 第二種是分層的,這種我們需要從選擇器的...

201809 3 元素選擇器

模擬題,細心細心再細心,整個結構是乙個樹型的結構。include include include include include includeusing namespace std typedef long long ll const int inf 0x3f3f3f3f const double...

201809 3 元素選擇器

試題編號 201809 3 試題名稱 元素選擇器 時間限制 1.0s 記憶體限制 256.0mb 問題描述 注意 1 乙個元素的祖先是緊接著其上的縮排小於等於其縮排的那些元素 連續的區域 中的縮排小於其縮排的元素 沒有等於的元素,等於的元素只是起一種連線作用 2 後代選擇器只能是多個id或者是多個l...