原创 loj分塊入門9題

解答超詳細 想刷一下組題夯實基礎吧。 自己感悟吧:分塊入門 2,6,8 by hzwer值得回顧一下,都代表了一種思想 還有一些類似(支持同時乘法和加法)只要按優先級處理標記等思想可取 第九題區間衆數(強制在線即 [Violet]蒲公英,

原创 [拓撲序入門][ZJOI2012]災難/[SDOI2009]Elaxia的路線/[HNOI2015]菜餚製作

拓撲序能解決哪些問題呢? 百度百科(不重要) 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊(u,v)∈E(G),則u在線性序

原创 Code Chef Sereja and Subsegment Increasings

最近連續被構造題坑,希望能借這些題好好總結(區間統一修改,差分是永恆的主題!!) 考慮每個數至少需要多少次操作,c1[i]=(b[i]-a[i]+4)%4,當然,如果進行c[i]=c1[i]+4*e次操作也能符合條件; 假設我們已經知道了

原创 Hihocoder31 B Beautiful Sequence

 因爲條件a[i-1] + a[i+1] ≥ 2 × a[i],可化簡成a[i+1]-a[i]>=a[i]-a[i-1] 所以最後求的數列一定是先遞減後不變後遞增的 我們將數從小到大排序 (a[i]<a[i+1])  考慮前i個數已經排完

原创 [bitset入門]【dp優化】AGC020C - Median Sum

•假設考慮的是所有子集,包括空子集; s代表子集所有元素之和 •顯然對於一個子集和x,存在另一個子集和s-x 所以只要考慮(>=(s+1)/2)且最接近的值 考慮揹包 bitset維護 #include<bits/stdc++.h> u

原创 [hdu6377][百度之星2018]度度熊看球賽

dp找對對象 第一思路考慮按位置dp然後炸了 可以按每隊情侶是否在一起dp f[i][j]代表到第i對情侶j對在一起的方案數 #include <assert.h> //設定插入點 #include <ctype.h> //字符處理

原创 [BZOJ1016][JSOI2008]最小生成樹計數

題意: 現在給出了一個簡單無向加權圖。你不滿足於求出這個圖的最小生成樹,而希望知道這個圖中有多少個不同的最小生成樹。(如果兩顆最小生成樹中至少有一條邊不同,則這兩個最小生成樹就是不同的)。由於不同的最小生成樹可能很多,所以你只需要輸出方案

原创 [期望概率]2016多校聯合7 Knights

我是看這個懂的 思路:因爲最後一個騎士肯定是往左走擊敗之前剩餘的所有騎士, 所以只要考慮前面i−1個格子之後向右的騎士有j個的概率,考慮dp (其實時間這個概念在這裏不重要,因爲如果前面有一個向左的騎士,那麼如果它不變成向右走(變成向右走

原创 [狀壓dp][BZOJ4197][NOI2015] 壽司晚宴

每個人都是自己的主角! 沒有人註定是二貨!  普通人也可以創造奇蹟! ——《愛情公寓》 題意: 在晚宴上,主辦方爲大家提供了 n−1 種不同的壽司,編號 1,2,3,…,n−1,其中第 i 種壽司的美味度爲 i+1 (即壽司的美味度爲從

原创 [斜率優化入門][HNOI2008]玩具裝箱/[BZOJ3156]防禦準備/[NOI2007]貨幣兌換

斜率優化主要針對dp 當遇到dp[i]=min(a[i]*dp[j]+f[j]+b[i]+j)  此種類似情況時(也就是對於求i 我們要考慮選哪個j以致最值),考慮斜率優化 具體步驟: 考慮此時k優於j (k>j) 那麼   a[i]*d

原创 [基環樹入門][ZJOI2008]騎士/CF1027F Session in BSU

最近一下子看到好多基環樹的題,先做兩道入門吧 解釋基環樹——樹加一條邊使之成環 這裏想說一下基環樹和tarjan最基本的區別:基環樹入度出度至多爲1。 樹形DP還有一種特殊情況——基環樹的DP,基環樹就是一顆樹上再加一條邊,處理基環樹問題

原创 [概率期望 dp入門] 「BZOJ3450」JoyOI1952 Easy/「BZOJ4318」OSU!/分手是祝願

  先講一講我眼中在期望 期望就是對於所有的情況 概率*權值的總和 一般對於d[i]爲處理到此時的期望 由第I步 到第j步   Change概率爲p 到d[j]=(d[i]+change[i])*p+d[i]*(1-p) 因此  d[j]

原创 [bzoj1806][dp][IOI2007]Miners 礦工配餐

簡單dp  只想說明爲方便代碼實現,編寫代碼時可稍稍放寬時間,使代碼簡單易懂 dp從前往後推會更方便  常用技巧:滾動數組 #include<bits/stdc++.h> using namespace std; int n,t,max

原创 [2018多校day8][hdu6400][構造][Parentheses Matrix]

不是什麼題都需要算法的 還需要虔誠的心去構造!!! 感覺好久沒做過類似的題了,好題啊,拉了solutions中的解答 題意 構造一個h×w 的括號矩陣,使得匹配的行數、列數之和最大。 題解 當h 和w 中有一個是奇數時,構造的方法是顯然的

原创 [APIO2016][組合計數dp]划艇

一邊探索,一邊破壞                         ——《巨齒鯊》 離散成一些開區間;/*如果計數題數大區間少可以考慮這個思路,用組合數計數處理區間*/ 用f[i][j][k]表示最後一個取到i這個學校,取值在第j段的