原创 大數技巧

A. Competitive Programmer 題意:將一個數字長串排列組合,是否能使之稱爲60的倍數。 解析:首先一定要有一個0,作爲10的除數。60轉化爲6,6=2*3,若有能被2除的數作爲個位,作爲2的除數。6轉化爲3,

原创 CF:A and B 數學等效思想

B. A and B 題意:給A,B兩個數,通過操作:第i次操作將A或B加i。用最少的操作次數使A,B相等。 解析: 考慮等效思想,對A+i相當於對B-i。問題轉化爲1(+/-)2(+/-)3(+/-)…(+/-)n=A-B。大小

原创 裝貨物-狀壓dp

傳送門:裝貨物 要想到狀壓是求出了所有狀態以及每一種狀態的不同產生情況,保留每個狀態最優的產生情況。 代碼: #include<bits/stdc++.h> using namespace std; int w[30]; int

原创 降冪算法

歐拉降冪公式 aaab≡a≡a≡ab%φ(p)φ(p)φ(p)+φ(p)φ(p)φ(p)(modp)(modp)(modp)   (b>φ(p))(b>φ(p))(b>φ(p)) 可以把大指數轉化成不超過φ(p)φ(p)φ(p)的

原创 二進制題

傳送門:求和 解析: 考慮在1-n的位置上放第一個1,假設第i個位置放第一個1,這樣的數有:222n-i個(後面 n-1 位放1或放0),答案是222lowbit(i)之和,那麼一個第一1在i的數對答案的一個貢獻就是222i-1

原创 cf-B-Azamon Web Services

鏈接 (今天睡到11點纔起來,腦子還不清醒呀。哎…這麼簡單的一題) 優先找前面的字符替換替換後面最小的字符(有多個時,優先用後面) #include<bits/stdc++.h> using namespace std; char

原创 三維最短路

即求解在三維空間中從一個點到另一個的最短距離 傳送門:Jelly 題意:在n * n * n的三維空間中每個點上都有一個好果凍或一個壞果凍。計算在不喫壞果凍的前提下,從(1,1,1)到(n,n,n)最少需要喫多少好果凍。 做法:

原创 排序-構造題

傳送門:排序 題意:給出一段包含’A’,‘T’,‘G’,‘C’的序列,每個字母可以和左右字母交換位置,每次交換造成一個消耗,構造出’A’,‘T’,‘G’,'C’分別連續的序列,求出最小的消耗。 解析:首先枚舉24種可能,即’A’,

原创 KMP-單模式串匹配

pat表示模式串,txt表示文本串,nex[i]表示pat中0~(i-1)最長相同前後綴。 KMP求pat在txt出現的次數或位置。 模式串的nex數組類似與ac自動機的fail指針,當發生不匹配時,跳到已匹配後綴最長的相同前

原创 老瞎眼 pk 小鮮肉-線段樹+區間離線

傳送門: 老瞎眼 pk 小鮮肉 題意: 給出一段長度爲n的序列,q次查詢區間(L,R)內異或爲0最短子區間長度。 思路: 假設區間[L,R]異或爲0,那麼[1,L-1]的異或值等於[1,R]的異或值。那麼對於每個點,我們存以它爲右

原创 羊喫草-區間端點問題

傳送門:羊喫草 題意:有n頭羊在一個有[1,400]區間的草原,每頭羊喫喜歡(只)喫[ai,bi]區間內的草,q次查詢在[L,R]區間在一個時刻內最多有多少隻羊在喫草(一個時刻羊只能在一點喫草,一點也只能有一隻羊在喫)。 做法:貪

原创 trie樹 & ac自動機

trie樹 trie樹就是字典樹,可以理解爲單詞樹,樹上每條邊是字母,被標記的節點表示根到這個節字母組成了單詞。 數據結構:用二維數組trie[maxn][N],tire[u][c]表示樹上編號爲u的父節點以邊爲c單詞連接到的兒

原创 Codeforces Round #619 (Div. 2) 題解

A. Three Strings 題意:給出三個長度相等的字符串a,b,c,對於每一位a或b中的一個和c交換,是否存在使得a,b相等的情況。 思路:直接枚舉c的每一位是否和a或b相同,相同則和不相同的那個交換,沒有相同的則無解 #inc

原创 hexo使用中出現的問題

更改域名後網站非正常加載 有多種可能的原因。 一種是更換域名解析需要等待10分鐘。 網站配置文件不正確。原因是新的域名下,網站加載的文件會多了一層。 # URL ## If your site is put in a subd

原创 LIS問題的簡短

導彈攔截 時間複雜度O(nlogn) 求最長上升子序列時: dp[p] ,p代表最長不上升子序列的子序列的編號從1開始增加,根據dw定理,最大的m編號即是最長上升子序列的長度也是最少分成了m組非上升子序列。 #include<bi