已完成2題。
1.chsgmnts :
題意:n=1000,a[i] < 1e9, 計數有多少對區間( [l1, r1], [l2, r2] ) 滿足沒有乙個數x同時存在於[l1, r1], [l2, r2]。
o(n * n) :把相同的數建立鍊錶,且前驅pre[i], 對第乙個區間 for(l1 1 ~ n) for(r1 n ~ 1) 遍歷, 對於pre[r1] < l1,說明a[r1]不在[l1, r1]內,所以把a[r1]這個鍊錶中的所有數都標記可行,同時紀錄可行塊的大小,每次更新塊的大小sz,就可以更新答案ans += sz * (sz + 1) / 2。
2.chsqarr :
題意:n,m < 1000 的矩陣, 詢問小於50組,每個操作可以讓矩陣的乙個數add 1,query(n, m)詢問最少可以用多少次操作讓矩陣存在某個(n, m)大小的子矩陣的值全都相等。
o(n * m * 50) :主要是查詢每個(n , m)子矩陣的最大值是多少, 單調佇列可以查詢每個連續的一維的區間的最大值,同理先處理掉一維,這樣用單調佇列就可以處理出所有子矩陣中的數的最大值是多少了。
polyeval:
題意: n<1000階的多項式,q = 2e5個詢問,每次詢問乙個xi < 786433, 輸出多項式的值mod 786433
神題,知道解法,ntt,複雜度o(n*logn*logn),參見這篇《多項式多點求值》
原題補題計畫
因為要參加省選,所以要補原題 noi2013 d2t1 矩陣遊戲 等比數列求和一下。當然也可以寫矩乘。code noi2016 d2t1 區間 線段樹 two pointers。兩個都是板子。code noi2018 d1t1 歸程 先跑一遍最短路,然後就是kruskal重構樹模板題了 最短路不要寫...
ABC1200 2200補題計畫
前言 atc質量感覺太好了,真的是見一題學乙個新東西 與其多大cf,不如老老實實的補高質量題。而abc我覺得對我就是乙個很好的選擇,因此我打算經常去回來鞏固在abc做的題,就有了做這篇部落格的想法。我目前水平太弱了,2200的題就要琢磨好久,為了提公升自己,目標刷1200 2200的題。當然有些題可...
CodeChef題目選講
關鍵點 不超過7條 根據咕咕原理,所以答案最少是n 7 n小於49就暴力 隨機化找兩個點判斷直線上的點個數,隨機500次,概率就很高了 法二 點數大於50,答案至少是8 答案一定是7條路之一 隨機找7個點,按照級角序排序,點數大於7的直線就刪去上面的點 之後random不考慮,但是實際上不能真刪除,...