原创 【Code+ 7】同餘方程

題目解法 可以在 Oeis 上找到對應數列,記答案爲 T(N,x)T(N,x)T(N,x) 。 首先, T(N,x)T(N,x)T(N,x) 是積性的,對於 gcd(N,M)=1gcd(N,M)=1gcd(N,M)=1 ,有 T(

原创 【Code+ 7】教科書般的褻瀆

題目解法 不難發現,對於所有血量的隨從都存在的情況,詢問 [1,M][1,M][1,M] 的答案應爲 O(NLogN)O(NLogN)O(NLogN) 級別。 考慮分別維護 FiF_iFi​ ,表示 iii 點法術傷害的褻瀆造成傷

原创 【Code+ 7】六元環

題目解法 考慮題目中給出的圖的結構: 對於邊 (l,r)(l,r)(l,r) ,找到區間 (l,r)(l,r)(l,r) 中最靠前的最大值的位置 xxx ,連邊 (l,x),(x,r)(l,x),(x,r)(l,x),(x,r)

原创 【NOI Online 3】Sequence

題目解法 我們希望計算出 AnsiAns_iAnsi​ 表示併爲 iii 的合法子序列的個數。 計算出 AnsiAns_iAnsi​ 之後,只需要通過線性篩處理歐拉函數後即可輕鬆算出答案。 首先刪去序列中所有的 000 ,特殊考慮

原创 【NOI Online 3】Magic

題目解法 考慮分別處理答案的每一位,則不難發現,異或可以看做模 222 意義下的線性變換。 預處理轉移矩陣的次冪,在詢問時矩陣乘向量即可。 有關矩陣和向量的運算可以通過 bitset 壓位優化。 時間複雜度 O(N3LogVw+Q

原创 【NOI Online 3】Kettle

題目解法 顯然答案應爲長度爲 k+1k+1k+1 的區間和的最大值,用前綴和 +++ 差分計算即可。 時間複雜度 O(N)O(N)O(N) 。 #include<bits/stdc++.h> using namespace std

原创 【UOJ530】【美團杯2020】漢明距離

題目鏈接 點擊打開鏈接 題目解法 在解決本題之前,首先考慮如下問題: 在數軸原點處,一個人開始隨機遊走,每一時刻,他將以 12\frac{1}{2}21​ 的概率向正方向走一步,以相同的概率向負方向走一步。求出 NNN 時刻後他所

原创 【UOJ528】【美團杯2020】分形之美

題目鏈接 點擊打開鏈接 題目解法 觀察分形結構,我們可以得到如下性質: (1)(1)(1) 、分形結構具有軸對稱性,且 Ai,j=Aj,iA_{i,j}=A_{j,i}Ai,j​=Aj,i​ (2)(2)(2) 、對於每一個 3×

原创 【UOJ529】【美團杯2020】114514

題目鏈接 點擊打開鏈接 題目解法 可以發現,在給定的序列 114514114514114514 中,每個 444 之前均有一個 111 。 因此,從後向前,將每個 444 與前方最近的一個尚未匹配的 111 匹配,不會導致原本有解

原创 【UOJ523】【美團杯2020】半前綴計數

題目鏈接 點擊打開鏈接 題目解法 對於一個所求集合內的子串 TTT ,定義其關鍵出現位置 (i,j,k)(i,j,k)(i,j,k) ,滿足 Lcp(S,T)=iLcp(S,T)=iLcp(S,T)=i 。那麼,可以枚舉前綴 ii

原创 【UOJ519】【美團杯2020】查查查樂樂

題目鏈接 點擊打開鏈接 題目解法 考慮判斷某序列是否可以選出子序列 S=xxxllS=xxxllS=xxxll 。則應當從左到右考慮序列個每個元素 xxx ,並維護匹配指針 pospospos ,若 x=Sposx=S_{pos}

原创 【UOJ532】【美團杯2020】熱身題

題目鏈接 點擊打開鏈接 題目解法 從長到短搜索題目給出的上升序列。 每填入一個數字,便檢查是否有能夠確定的位置,並在產生矛盾時進行剪枝。 時間複雜度 O(1)O(1)O(1) 。 #include<bits/stdc++.h> u

原创 【UOJ522】【美團杯2020】版本答案

題目鏈接 點擊打開鏈接 題目解法 關於鯖魚聖者的之間的戰鬥,有如下觀察: (1)(1)(1) 、在任意時刻,雙方陣營中沒有聖盾的鯖魚聖者數量不超過 111 (2)(2)(2) 、進攻方的鯖魚聖者 xxx 進攻後,其餘鯖魚聖者均會重

原创 【UOJ531】【美團杯2020】最長公共子序列

題目鏈接 點擊打開鏈接 題目解法 詢問長度爲 222 的序列 {x,y}  (x≠y)\{x,y\}\;(x\ne y){x,y}(x​=y) 可以查詢 xxx 是否在答案中排在 yyy 的前面。 由此,用 std :: sta

原创 【UOJ524】【美團杯2020】程序解密

題目鏈接 點擊打開鏈接 題目解法 利用編輯器的替換功能不難得到大致的程序。 對於剩餘不能確定的部分,枚舉所有可能的情況,根據樣例判斷是否正確即可。 值得關注的突破口有:右大括號、回車、Tab,以及出現了一部分的保留字。 #incl