1. 程式人生 > 其它 >6.16

6.16

、CF1454E Number of Simple Paths

題意:

  給出n個點n條邊的連通圖,求出簡單路徑大於等於1的數量。

思路:

  n個點n條邊所以是個基環樹,先把環找出來,對於環上的每棵樹遍歷一下,子樹內貢獻為size(size-1)/2,到環的貢獻為size*(2x-1),子樹之間的貢獻為size*(n-size-x)*2

CF1458B Glass Half Spilled

題意:

  n個杯子,每個杯子容量為ai,初始有bi的水,將杯子i的水倒到杯子j中x容量的水,會有x/2的水會浪費。求有1~n個杯子時得到的最多水量

思路:

  設選a個杯子,其他的杯子肯定直接a個杯子中,如果沒有容量限制那就很簡單,直接f[i][j]表示前i個杯子保留了j個,但多了容量限制就增加一位,則設f[i][j][k]表示前i個杯子選了j個容量為k的最多水量,轉移就是考慮第i個杯子保留或者把水倒出,f[i][j][k]=max(f[i-1][j][k],f[i-1][j-1][k-a[i]]+b[i]/2)

CF1481D AB Graph

題意:

  給出有n個點的完全圖,每條邊上有a或b的字母,問能否求出長度為m的迴文序列,並輸出路徑。

思路:

  因為只有a和兩種字母,感覺分類討論一下就行了,如果存在i到j和j到i的字母相同就來回跑,所以現在來回都不同,如果m是奇數,就兩個點來回走就是ababa...,設i,j,k三個點i到j是a,j到k是a,那就直接aabbaabbaa......,如果i到j是a,j到k是b,從j出發就先選出ab,後邊選出ba即可

CF1426F Number of Subsequences

題意:

  給定一個含有abc?的字串,?可以是abc中的任意一個,求所有可能的字串中,子序列abc

出現的次數

思路:

  能組成abc的有abc,?bc,a?c,ab?,??c,?b?,a??,???八種,為了方便計算就找中間的位置,如果遇到b或?,如果前一位是a或?,後一位是c或?,就加3^x(x為序列中除去左右兩位後問號的數量

CF1427C The Hard Work of Paparazzi

題意:

  一個r*r的二維平面,有n個名人,在ti時刻在(xi,yi)位置出現,位置的移動時間是曼哈頓距離,求遇到最多名人的數量

思路:

  設f[i]表示最後遇到第i個名人,最多遇到名人的個數,轉移f[i]=f[j]+1,這樣會超時,但時間差大於1000的一定可以轉移,且時間是遞增的,所以取個最大值即可,小於1000的暴力轉移