csp月模擬 201809 3 元素選擇器

2021-10-07 03:32:55 字數 1335 閱讀 6718

1.本題模擬了css的dom樹查詢操作,但實際上並不需要建樹(有點複雜),我們可以直接根據層級的深度來模擬樹的層級關係

2.我們觀察可以發現對於查詢來說 如果我們匹配到最後乙個標籤(id)那麼我們只要可以在他前面找到到達這個標籤的路徑就可以了(逆序找路層級(cnt)遞減)

注意:僅僅對標籤大小寫不敏感但是對於id大小寫敏感(不然只有90分)

#include

#include

#include

#include

using

namespace std;

const

int n=

105;

struct nodea[n];

string tolower

(string str)

return str;

}vector

query(0

);//儲存查詢

vector<

int>

ans(0)

;//儲存結果

bool

search

(node a,

int&start,

int&cnt,string s)

}return

false;}

intmain()

}}for(

int i=

0;i)int len=query.

size()

;for

(int j=

1;j<=n;j++

)//遍歷dom

if(k<0)

//成功

ans.

push_back

(j);}}

//輸出結果

cout<

size()

;for

(int j=

0;jsize()

;j++

) cout<<

" "<

; cout<

}return0;

}

CSP201809 3 元素選擇器 模擬

用point來儲存結構化文件,裡面string label,string id為標籤和id,int c為所在層數,兩個點就為一層。讀入結構化文件 用getline讀入一行,然後計算出點的個數,層數就為點的個數除以2。接下來讀入label,因為label大小寫不敏感,將其全部轉換為小寫。如果字串還有剩...

csp 201809 3 元素選擇器

題目描述 201809 3 試題名稱 元素選擇器 時間限制 1.0s 記憶體限制 256.0mb 題目背景 題目描述 由題可知,結構化文件由元素組成,而這些元素是以一棵樹得形式組織起來的。我們這裡使用結構體來儲存每乙個元素,結構體內包含元素標籤 name 元素id id 元素所在層級 level用於...

csp201809 3 元素選擇器

時間限制 1.0s 空間限制 由於標籤大小寫不敏感,因此在讀取標籤時,首先將標籤的字母全部轉為小寫。建立元素陣列儲存每乙個元素,建立乙個記錄所有id出現的陣列,便於查詢,減少複雜度。在讀取文件資料時,使用vector陣列來儲存上一級元素,用於查詢每個元素的上一級元素。有點類似棧 不是後代選擇器的情況...