csp18年9月第3題 元素選擇器

2021-10-06 22:02:26 字數 1516 閱讀 1955

1.關於選擇器先明確一下:

選擇器有三種情況,有標籤選擇器,id選擇器,兩者復合的後代選擇器(前面兩者易於理解,第三個選擇器比較複雜)

理解一下後代選擇器:格式為a b,其中a和b均為標籤選擇器或id選擇器(二者)

2.具體思路:

(1)有層級關係,聯想到樹,便於對上級進行查詢,定義結構體element,記錄需要的各種資訊:包括查詢內容,層級,行號

(2)將element內容存放在陣列中,在前兩個選擇器的操作中,直接遍歷陣列找到符合的結果,記錄行號;在後代選擇其中,先遍歷確定最後乙個查詢專案是否出現,如果出現了,再向前回溯找它的上一級是否滿足,若上級(還有上上級之類,與輸入有關)滿足要求,則記錄之前最後乙個查詢專案的行號

3.字串的處理問題:

之前總結了一下,這裡就不寫了。

4.一些小細節:

標籤大小寫不敏感,id敏感;這裡我將字串全部轉換為小寫字母

#include

using

namespace std;

struct element

q[210];

int cnt;

string lower

(string s)

//字串轉換為小寫

void

insert

(string s,

int i)

else name = s.

substr

(tlevel)

;//沒有id

q[cnt]

.text =

lower

(name);if

(!id.

empty()

) cnt++;}

intmain()

for(

int i =

0; i < m; i++

)else

if(v.

size()

>1)

//選擇器多項

if(r == v.

size()

-1) ans.

push_back

(q[i]

.row);}

} cout << ans.

size()

;for

(auto

&x : ans) cout <<

" "<< x;

cout << endl;

}return0;

}

CSP 2023年9月第2題 買菜

這題的重點 就是要清楚地分析 兩個時間段之間的對應關係 要清晰的分析出 相交 包含 相離的情況 需要我們在紙上畫圖,這樣比較好分析 其次 要建立結構體陣列 從而來存放讀入的資料 還有就是 結果感覺 大概是10 9 的樣子,因此 把設定為 long long 型別 下面是 原始碼 include us...

CSP 2023年12月第2題 小明放學

資料型別 必須要是long long型別 所有測試點保證 n 10 5 可能出現的最大的數為10 6 10 5 10 11 int型最大表示的數是2147483647 2 10 9 long long最大儲存範圍是10 18 燈光的順序紅 綠 黃 k 1 紅 k 2 黃 k 3 綠 這個對應順序有點...

CCF2023年12月第3題 Crontab

這一題要求我們對給定的配置資訊,在特定的時間段輸出需要執行的任務。在unix中每分鐘檢查一次,最簡單的思路就是用迴圈模擬時間的推移,每分鐘匹配一次規則。這種情況在真正的系統裡是很高效的,因為時間是真實流動的。但如果是模擬執行則有些浪費時間。如果在考試過程中想不到其它方法這種暴力方法至少可以通過70 ...