2019.11.11&12題解

Day1

考的不是很好,T1T2沒區分度,T3想的太少,考試後期幾乎都是在摸魚,bitset亂搞也不敢打,只拿到了35分,跟前面的差距很大算法

A. 最大或

標籤:ui

二進制+貪心spa

題解:blog

首先x,y中必定有一個是R,考慮L的取值:對於每一位分爲x中有沒有討論:排序

1>有 若是這一位不加之後全加能夠>=L則不選,不然選it

2>沒有 若是這一位選上之後全不加也沒法<=R則不選,不然選class

由於位數從高到低枚舉,因此貪心是正確的搜索

B. 答題

標籤:二進制

折半搜索+二分im

題解:

2<=n<=40,顯然是要折半搜索的,答案知足單調性,能夠二分判斷,check時複雜度最好是1<<20,而不是2e7的值域

說實話這道題比T1要簡單

C. 聯合權值·改

標籤:

啊啊啊起個標籤好藍啊

題解:

首先證實環的數量是$m*sqrt(m)$的:

考慮最壞狀況:必定是一個競賽圖,那麼點數就是$sqrt(m)$,環數最可能是$m*sqrt(m)$

有了這個性質下面的算法便有了複雜度保證:

1>對於第一問:

把每一個點的出邊按w[to]降序排序,考慮枚舉$ x,y((x,y)\in{edge}),z((x,z)\in{edge}) $

只須要找到第一個不是三元環的z點即可以更新答案,複雜度與枚舉到的環有關,而每一個環最多會被枚舉到3次,因此複雜度是對的

2>對於第二問:

考慮容斥:

用每一個點的出點的權值和的平方減去平方的和,

再減去三元環的的狀況,我是枚舉u,v用bitset求出b[u]&b[v].count()即是有u,v的三元環的個數

相關文章
相關標籤/搜索