gym訓練記錄

2022-08-03 21:27:13 字數 1361 閱讀 3437

[upd 12.18] 老年選手也該看看歐洲的acm了,不然以後就再也沒有機會了

[problem a]挺牛逼的結論,與y軸平行的直線最多隻會經過$o(\log c)$個點,拿乙個線段樹維護一下每個x對應哪些圓即可。複雜度$o(n\log n\log c)-o(n)$

[problem b]對每種圖討論即可

[problem c]建出一棵dfs樹,假設當前與$1$構成強聯通的集合為$s$,bfs每次找到乙個不在$s$中的點指向$s$中點的邊,把不在$s$中的點到根路徑加入$s$即可。複雜度$o(n+m)-o(n+m)$

[problem d]假設$a$最大,顯然$b$個上面的和$c$個右面的只會產生最多$bc$個正面的,所以只要$a\leq bc$有解。如果$a[problem e]隨便加加減減

[problem f]

[problem h]

[problem i]拿第二列中的數字把第一列的數字全部問一遍,就可以把第一列分成兩部分,且可以知道當前的數值。假設已經問了$k$次,即第一列已經分成了$k+1$段,我們可以首先二分出來$o_$屬於哪一段,然後暴力分塊,二分的時候只要比較段內的乙個數字,然後最後在最後乙個小於的段和第乙個大於的段中找就行了,這樣總詢問次數是$o(n\log n)$的,維護分段的複雜度可以$o(n^2)$。

[problem j]考慮列舉第$k$大的邊的數值$x$,把小於$x$的邊全部修改為$0$,跑一邊恰好有$k$個非$0$邊的最短路,這樣是$o(nm^2)$的。考慮轉為一般最短路,對於一條路徑,如果其非$0$邊的數量大於$k$,那麼顯然有更優的方案被別的數值統計,不會影響答案;如果小於,補足$k$個數值$x$後也不影響答案。那麼把非$0$的權值減去$x$,那麼最後最短路加上$xk$就是權值$x$的答案,資料會卡spfa。複雜度$o(m^2\log n)-o(m+n)$

[problem k] 

[problem l]按照鏈的長度從大到小排序,這樣就不會出現某個線被後面嚴格包含。掃一遍整條路徑,如果有被搞過的點那麼就是no,否則把一端為路徑上點的路徑全部取出來,這樣問題就變到了數列上:詢問是否存在x1[problem a]

[problem b]

[problem c]

[problem d] 

[problem e]

[problem f]

[problem g]

[problem h]

[problem i]

[problem j]

[problem k]

[problem l]

gym101243 訓練 G素數篩

a n魚條數,k個鍋位 每條魚兩面煎 2個特判 當然1條魚不可同時在2個鍋位煎正反 如果n 2 不能求餘k 還需要1min if n k 3條魚 4個鍋位 ans 2 else n k 4條魚 3個鍋位 8面 正1 正2 正3 反1 反2 正4 反3 反4 一定每一行不會出現同一條魚2次 d 組合數...

gym初級 初始gym環境(二)

import gym env gym.make cartpole v0 print env.action space print env.observation space 輸出結果為 discrete 2 box 4,意思是動作空間中的動作是離散 discrete 的2個動作,狀態空間中的狀態是4...

20160814訓練記錄

t1 題意 給定n 求能組成多少個三角形 題解 列舉三個點,但是切記不要用距離算,會有精度誤差 因為這樣三個點只要不在乙個直線上就行 那麼即可t2 題意 給定100個長度小於100的關鍵字串,給出十篇文章,對於每一篇文章回答是否都包含所有關鍵字串 題解 文章長度1000000 目測一下應該kmp優秀...