原创 nanchang B A Funny Bipartite Graph

題意是:給你一個二分圖,讓你在其中選一些邊,邊和邊兩邊的點構成一個新圖,然後問新圖的最小代價? 新圖要滿足兩個條件:右邊的點必須全選,左邊的點必須滿足互斥關係。 原圖也滿足一些性質,每個點的度小於3,左邊的每個點不會向左邊編號比它小的點連

原创 Tree Factory cf596div1D

給以一條鏈,每次可以把一個點變成它父親的父親兒子,問最少多少次可以變成給定的樹? 考慮將一顆樹變成一條鏈,那麼就是把一個點變成兄弟的兒子。 而考慮最少需要多少步,每一次操作最多讓樹高加一,那麼最少需要n-max(dep)-1次。 那麼爲了

原创 Arranging Wine

大概在很久之後,做了一道差不多的題,纔回來把這道題給補了。 題意是給你n瓶紅酒,m瓶白酒,然後把白酒和紅酒分成很多堆,紅白相間排成一行,然後每堆紅酒不超過d瓶,問有多少種方案。 題目給的解釋特別有迷惑性,其實我們把一堆平着放,就是求所有的

原创 Banned Patterns 計蒜客 - A1533

這個題,感覺特別神奇,感覺複雜度是正確的,但是給不出特別正確的證明。 題意:給你n個匹配串,給你m次詢問,然後問詢問串裏有沒有子串是某個匹配串的映射? 最開始就感覺多模式匹配肯定是ac自動機嘛,然後發現映射情況數太多不好處理,就想有沒有什

原创 GYM 102439 Equal Mod Segments

題意是,給你一個序列,問有多少區間 [l,r] 滿足 a[l]%a[l+1]%a[l+2].....%a[r]==a[r]%a[r-1]%a[r-2]...%a[l]? 我們考慮一個區間 [l,r] 假設區間內最小值在pos處取得,那麼區

原创 E.F(cf div2 Round 66)

E.Ehab and the Expected GCD Problem 題意:對n的一個排列,使這個排列中前綴的不同gcd個數最大,問有多少種這樣的排列? 思路:考慮gcd的衰減,所以第一個數一定有最多的質因子個數。那麼它一定是形如2^x

原创 Master of Data Structure Gym - 102220D(虛樹)

題意:給以一顆有n個節點的樹,給你m次操作。n<5e5,m<2000 操作有:對一條鏈加x,異或x,減x,求和,求異或和,求最大值減最小值,求和k最接近的數 思路:因爲m只有2000次,所以需要操作的點不會特別多,可以參考離散化的思想,把

原创 牛客多校第一場 B Symmetric Matrix

鏈接:https://ac.nowcoder.com/acm/contest/139/B 來源:牛客網   題目描述 Count the number of n x n matrices A satisfying the followin

原创 Neko and tree HDU - 6540 (樹形dp)

題意:給你一棵樹,樹上有一些重要的點,讓你選一個只包含重要的點的點集,滿足點集裏最遠的兩個點不超過k,問有多少種選法 想了好久,題解說得太簡略了。。。 dp[i][j]表示在i這顆子樹中距離i點最遠點距離爲j的方案數。 考慮如何從子樹轉移

原创 The 2019 Asia Nanchang First Round Online Programming Contest C. Hello 2019

賽後發現是道原題。。。 比賽時想到了線段樹維護dp,然而dp沒有寫好。。。 考慮如果只對原序列詢問一次,那麼可以o(n)的dp去做,dp[i][j]表示在i個位置達到狀態j的最小花費,第二維的狀態有{2},{20},{201},{2019

原创 Gym - 101190D Delight for a Cat(費用流)

題意:在n個小時中,貓要麼在睡覺,要麼在吃東西,不能同時進行,但是要求每相鄰的k個小時,貓睡覺的時間不能小於ms,吃東西的時間不能小於me,給出每個小時吃東西和睡覺的收益,求最大收益。 想了好久的上下限,但是好像沒辦法做,也可以是我太菜了

原创 Solid Dominoes Tilings HDU - 5731 (輪廓線 容斥 )

比較好玩的容斥,,, 如果不加限制的話,是一個經典的輪廓線dp。 加上限制之後,考慮利用容斥求出不合法的方案數。 最開始想的時候,想的是求出所有的方案數,減去所有列不合法的方案數,減去所有行不合法但列合法的方案數。。 但是好像過去麻煩,可

原创 2019牛客多校賽 第九場 I KM and M

首先,可以按位考慮,對於第i位有多少個m的倍數滿足這一位上爲1? 對於一個數x,我們判斷這一位上是否爲1,參考十進制的做法,即 ; 那麼將公式變一下型: 後半部分是一個等差數列整除一個整數的求和式。 很久之前就存過這個板子了,但比賽時還是

原创 2019hdu多校六 Ridiculous Netizens(點分治)

大概題意是: 給你一顆無根樹,每一個結點有點權, 有多少顆子樹的結點乘積不超過m?子樹的定義是樹上的連通塊。 首先我們考慮另一個問題,假設給你一顆有根樹,所以包含根的子樹有多少種滿足乘積不超過m? 考慮樹形dp的做法,定義dp[i][j]

原创 2019牛客1 i

大致題意:給你n個點,第i個點在的位置爲(xi,yi),有兩個屬性值(ai,bi)。現在讓你把這n個點劃分爲A和B兩個部分,使得最後不存在i∈A和j∈B,使得xi>=xj且yi<=yj。然後對於所有的劃分方法,找到並輸出