原创 5.28聯考題解

A bzoj3777 先不考慮本質不同,計算總的方案數,問題相當於一個人每步至少跨越k個格子,求走到這n個格子中某個格子後停下來的方案數 我們設這個人一開始在無窮遠,第一步走到的位置是0,然後設他走到第i個格子的方案數是f[i

原创 「JOI 2017/2018 決賽」題解

LOJ 2347~2351 BZOJ上只有其中2道: 4273,4279 寒冬暖爐 dp可以推個柿子把轉移優化到O(1)O(1) ,再套個wqs二分把狀態數優化到O(nlogn)O(nlogn) code: #include<

原创 計算幾何相關的板子

先扔幾個板子在這佔個坑 圓的周長並:https://oi.abcdabcd987.com/bzoj1043/ 圓的面積並:https://oi.abcdabcd987.com/ciru/ 圓並中恰好被覆蓋K次的面積: https:

原创 2018-2019 ICPC, NEERC, Northern Eurasia Finals 部分題解

III 感覺這題非常厲害 爲了方便解釋,做以下約定 1.1.1.將全序列p1,p2...pnp_1,p_2...p_np1​,p2​...pn​記爲AAA 2.2.2.將AAA的某個嚴格子區間記作BiB_iBi​ 題目把 inte

原创 NOIP2018遊記

感覺今年noip題目順序很神奇 雖然麥老大覺得這樣挺好的,能有一天打的特別爽… day0 到了酒店時間還早,戰鬥戰鬥 晚上beginend和金中的同學們跑過來和我們一起次飯,begin帥照++,金中的同學們還捎來了禮物(沒有回禮十分慚

原创 6.12聯考題解

A: 對於T=1T=1 的詢問分塊,對於 <=n−−√<=n 的K,維護序列中 mod K=i mod K=i  的和,對於>n−−√>n 的K,每次詢問直接暴力跳 O(nn−−√)O(nn) 對於T≠1T≠1 的詢問 首先肯定貪

原创 UOJ#123. 【NOI2013】小Q的修煉

第一次完整做完一道題答…. 這道題答似乎算是十分友好的 前面幾個點的代碼沒存,只有最後幾個點的代碼(不過後來看了一下感覺這個代碼是能跑所有點的) case1,2 寫個暴力遍歷所有情況,case2要跑一會 case3 我們看一下這個tra

原创 NOI2015題解

D1T1: 先用並查集把相等關係並起來再看有沒有同一個聯通塊的不等關係 D1T2: 樹剖 D1T3: 大概思想就是根據一個數>x−−√>x 的因子只有1個,對<n−−√<n 的質因子狀壓,>n−−√>n 的暴力枚舉 之前寫過題解

原创 6.26聯考題解

A: 首先答案的下界是l−1+lcl−1+lc 對長爲ll ,字符集爲cc 的所有串建進一個圖裏,每個串連cc 條邊分別連向添加這個字符後這個串長爲ll 的後綴的串的點,感受一下這個圖顯然有哈密頓迴路且這個哈密頓迴路就是我們要找的最優

原创 BZOJ4369: [IOI2015]teams分組

將一個人(A,B)視作一個二維平面上的點,則一個小組k可以看作是[0,k]x[k,+∞]的一個矩形 對於每個詢問,我們從小到大處理k,每次將當前的可行區域內最低的那些點分配給k,對於不可行或之前取過的點的矩形區域,我們維護他們的拐點,這

原创 BZOJ4371: [IOI2015]sorting排序

我們假設E不操作,A把所有元素復位的最優解是枚舉i,若他不在位置i上就和位置i交換,把他轉化到圖上正確性顯然 現在E操作,我們假設位置0~n-1上有碟子0~n-1,碟子i上有蘋果i 我們讓E操作是交換碟子,A操作是交換蘋果 發現這和

原创 LOJ#2461. 「2018 集訓隊互測 Day 1」完美的隊列

可以先看一下這篇,寫的比較詳細了 我們考慮對每個詢問jj 求出一個ed[j]ed[j] ,表示在執行完(j,ed[j]](j,ed[j]] 的操作後,jj 在序列里加入的所有xx 全部被pop出去了,就可以對每個顏色xx 求出若干個存在的

原创 NOI2016部分題解

D1T1優秀的拆分 枚舉AABB中AB的交界處,其實就是要計算每個位置AA的數量,算這個東西有個經典套路: 枚舉A的長度,每A個字符設置一個關鍵點,任意一個A一定覆蓋且僅覆蓋1個關鍵點,枚舉相鄰的兩個關鍵點,後綴數組上st表O(1)

原创 6.15聯考題解

A: 我們嘗試給每個點劃分聯通塊 定義一個聯通塊的位置是它裏面深度最淺的點 那麼一個點要麼屬於他某個祖先的聯通塊,要麼自己這裏有一個聯通塊 於是可以做個dp 但是dp狀態裏要有個當前的最大值,狀態數就n2n2 了 我們可以先二分

原创 6.25聯考題解

A: 維護一個集合,茲磁插入一個數xx ,詢問集合裏的數和xx 做and,or,xorand,or,xor 運算的最大值 權值ai<65536=216ai<65536=216 因爲位運算不同位之間互相獨立,我們把一個數拆成前8位和後