CodeChef補題計畫

2021-07-14 23:49:46 字數 692 閱讀 8123

已完成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不考慮,但是實際上不能真刪除,...