原创 玲瓏OJ 1149 - Buildings 【尺取法】

題目鏈接 顯然通過尺取法可以找到每次以j爲結尾,包含j的區間,往左延伸,最左能到i (i<=j) 於是以j爲結尾的區間有(j-i+1)個 累加即可 #include<stdio.h> #include<bits/stdc+

原创 HDU6109 數據分割 【並查集+啓發式】

傳送門 顯然,維護xi=xj的情況,並查集即可 而xi!=xj時,可以開一個1e5的set<int>數組,記錄xi不等於的數 xi=xj約束 ①檢查是否滿足xi!=xj : 遍歷較小的set的元素t,滿足un.find(t)

原创 51NOD 1294 修改數組 【LIS】

傳送門 a[i]=a[i]-i 則不難發現 對a[i]中>=0的元素 求一遍單增子序列(非嚴格) 答案就=n-lis #include<stdio.h> #include<bits/stdc++.h> #define ll

原创 【2017多校】HDU6085 Rikka with Candies

傳送門 考慮枚舉k,此時只有bj>k,ai>=k,才可能滿足ai%bj=k bbi={i的>k的因子屬於b[1...m]的個數} 此時餘數爲k的情況數=∑ni=1bbai−k 考慮用bitset存放a,bitsetA>>k

原创 51NOD 1158 全是1的最大子矩陣

傳送門 很像最大子矩陣和 枚舉子矩陣在第i行到第j行,sum[k]=∑jia[i][k] 當sum[k]!=j−i+1時,子矩陣不全爲1 構建數組b[k]=(sum[k]==j−i+1?1:−inf) 則對b[k]求一次

原创 HDU6208The Dominator of Strings 【AC自動機】

傳送門 顯然只有長度最長的串纔可能是答案 若有2個串長度最長 且不相同 無解 建立ac自動機,若存在>=2個深度最大的節點 無解 用最長的串跑一遍查詢,如果能匹配到的串恰好有n個 答案就是該串 #include<stdio.h> #

原创 Codeforces862 E. Mahmoud and Ehab and the function

傳送門 sumA=∑ni=1(−1)i−1ai sumB[j]=∑ni=1(−1)ibi+j 顯然f(j)=|sumA+sumB[j]| 對每次更新[l,r,x] 顯然只有(r−l+1)%2==1時,sumA才會改變 當l%2=

原创 51NOD 1670 打怪獸

1670 打怪獸 基準時間限制:1 秒 空間限制:131072 KB 分值: 40 難度:4級算法題 收藏 關注 lyk在玩一個叫做“打怪獸”的遊戲。 遊戲的規則是這樣的。 lyk一開始會有一個初始的能量值。每次遇到一個怪獸,若lyk的能

原创 51NOD 1358 浮波那契 【矩陣快速冪】

1358 浮波那契 基準時間限制:1 秒 空間限制:131072 KB 分值: 40 難度:4級算法題 TengBieBie已經學習了很多關於斐波那切數列的性質,所以他感到一些些厭煩。現在他遇到了一個新的數列,這個數列叫做Float-B

原创 UVALive - 7045 Last Defence

傳送門 101,1000,899,101,798,697,101,596,495,101,394,293,101,192,91,101,..... 7,4,3,1,2,... 不難發現 ①:假如當前只有a,b,l=abs(a−b)

原创 UVALive - 7040 Color 【容斥定理】

傳送門 f(k)=k∗(k−1)n−1=選擇不超過k種顏色,相鄰顏色不同,染n個格子的方案數 (第一個格子有k種選擇,之後n−1個格子有k−1種顏色可以選) 恰好使用了k種顏色的方案數=f(k)−(不用顏色1+不用顏色2+...)+

原创 HDU3507 Print Article 【斜率優化DP】

傳送門 sum[i]=∑ij=0c[j] d[i]=min{d[j]+M+(sum[i]−sum[j])2 | j<i } 若d[a]+M+(sum[i]−sum[a])2<d[b]+M+(sum[i]−sum[b])2 d[a]

原创 Codeforces790B. Bear and Tree Jumps 【樹型DP】

傳送門 ans=∑ceiling(disi,jk) 令f(x,k)=k−x%k 則ans=∑disi,j+f(disi,j,k)k=1k(∑disi,j+∑f(disi,j,k)) 於是問題轉化爲求∑disi,j和∑f(disi,j

原创 51NOD 1460 連接小島 「貪心」

傳送門 顯然橋a能連在li+1−ri<=a<=ri+1−li 於是問題就轉化爲n−1個活動,每個活動可以在[li,ri]時間內進行,給出m個空閒時間,問能否完成 非常經典的活動分配問題 按ri升序排序,ri相同按li升序排列,mu

原创 HDU5952 Counting Cliques 【搜索剪枝】

傳送門 直接dfs搜索,當前搜到u點,則只向前搜索>u的點即可 #include<stdio.h> #include<bits/stdc++.h> #define ll long long #define pii pair<int,in