原创 浙江理工大學zstu2016新生賽題解

A:Save the Princess 題目:點擊打開鏈接 題意:n個人橫向排好隊,其中左數第k個是公主,LYF和BH分別可以殺掉隊列最左邊的或者最右邊的人,直到某個人拯救公主,兩個人都會選擇最佳殺人方案,LYF先殺,問誰能拯救公主。 分

原创 Sam後綴自動機模板

const int maxn = 112345 ,mlen = 26; struct Sam{ int len[maxn*2],fa[maxn*2],nex[maxn*2][mlen]; int _cnt,root,om

原创 SA後綴數組模板

下標都是從1開始的 計數排序 const int N=100010; #define MS(x,y) memset(x,y,sizeof(x)) int sa[N],rnk[N],height[N],tax[N],tp[N],n,m,k;

原创 HDU 3642 Get The Treasury 【線段樹】【掃描線】

題目:點擊打開鏈接 題意:求空間內至少三個長方體重疊相交的體積 分析:我們可以先把所有的長方體的兩點的x,y,z保存下來,因爲給出的長方體座標x,y,z,z很小,所以可以考慮離散化z,然後對於每一個z,利用掃描線計算出所有長方體的高包含z

原创 CodeForces 734E Anton and Tree 【連通縮點】

題目:點擊打開鏈接 題意:給出n個點,n-1條邊構成一棵生成樹,每個點都有黑白兩種顏色,每次改變顏色都能使同顏色的相鄰點改變顏色,求最小改變顏色的次數 分析:因爲每次改變顏色都能使同顏色的相鄰點改變顏色,所以相鄰且顏色相同的點可以縮成一點

原创 CodeForces 732E Sockets 【貪心】【STL】

題目:點擊打開鏈接 題意:有n臺電腦,m個插座,每臺電腦的功率是p_i,每個插座哦的功率是s_i,只有當p_i=s_i時,電腦和插座才能連起來。有種變壓器,能將插座的功率減半並向上取整,並且變壓器能連接使用,求最多能有幾臺電腦連接上插座,

原创 URAL 1036 Lucky Tickets 【dp】【高精度】

題目:點擊打開鏈接 題意:每個數都有2*n個數位,數位之和爲s,前n部分數位之和等於後n部分數位之和,求有多少個這樣的數(包含前綴零) 分析:當s爲奇數時直接輸出零,當n爲偶數時,把s除以二,先算出前n部分的個數,後n部分的個數也相同,因

原创 ACM數學(轉)

從放暑假前周sir給我講了一個用polya計數法和burnside定理做的題目(pku2409)後,突然覺得組合數學挺有意思,然後從那時起到現在幾乎都在做這類的題目。   做到現在感覺這類題目的一些基本知識點都差不多有所瞭解了,水題也刷

原创 HUST 1214 Cubic-free numbers II 【容斥】

題目:點擊打開鏈接 題意:一種數它不能被這樣表示n=x*x*x*k(x不爲1),求出[l,r)區間內有多少這樣的數,區間在64位整數內。 分析:顯然先求出1~n中有多少這種數,由唯一分解定理得x必定爲質因數,所以先篩出小於(1<<63)的

原创 CodeForces 719E Sasha and Array 【線段樹】【快速矩陣冪】

題目:點擊打開鏈接 題意:給出有n個元素的數列ai(1<=i<=n)以及m次操作,操作分爲兩種:①將區間[l,r]的數加x;②詢問∑f(ai)(l<=i<=r),其中f(x)是斐波那契數列的第x個數 分析:容易想到用快速矩陣冪求斐波那契數

原创 POJ 1091 跳蚤 【容斥】【質因數分解】

題目:點擊打開鏈接 題意:中文題 分析:題意可轉化爲,有n個數,每個數都小於等於m且允許重複,gcd(所有數)==1,求這n個數的所有滿足條件的排列組合。求出gcd==1的個數難易實現,因此可以先求出gcd!=1的個數,即所有的數都不互質

原创 HDU 2204 Eddy's愛好 【容斥】

題目:點擊打開鏈接 題意:中文題 分析:對於所有滿足m^k<=n的m,都有m<=n^(1/k),故可以從求滿足m^k<=n的個數轉化爲求m<=n^(1/k)的個數。其中指數k必須爲質數,因爲合數可以拆成質數之積,產生重複計算,如2^4=4

原创 URAL 1091 Tmutarakan Exams 【容斥】【組合數】

題目:點擊打開鏈接 題意:在不大於s的所有數中,找出k個gcd不爲1的數,求組數。 分析:因爲k>=2,所以必定選擇兩個數不互質,最大的質因數不超過50/2=25,因此枚舉不超過25的質因數,對於每個質因數x,與之不互質的數共有s/x,而

原创 HDU 1695 GCD 【容斥】【質因數分解】【歐拉函數】

題目:點擊打開鏈接 題意:給定區間[a,b]和[c,d]和k,求出x∈[a,b],y∈[c,d],使得gcd(x,y)==k的個數,給定a=c=1。 分析:對於滿足gcd(x,y)==k的x,y的值,都有x,y是k的倍數,且x,y互質。因

原创 CodeForces 734C Anton and Making Potions 【二分】【貪心】

題目:點擊打開鏈接 題意:要製作n個藥,初始製作一個藥的時間爲x,魔力值爲s,有兩類咒語可以加速,一類有m種咒語,每種咒語使製作一個藥的時間變成a[i],花費b[i]的魔力,二類有k種咒語,每種咒語瞬間產生c[i]個藥,花費d[i]的魔力