day4 dp
1.區間dp
合併傻子
n個矩陣,n0*n1 n1*n2 ....nn-1*nn
找到乙個做乘法的順序,使得運算次數最少
n*m m*k o(n*m*k)
資料化f[l][r]第l個到第r個做完
f[l][l] = 0
列舉最後乙個乘法是哪個乘法,分界點
f[l][r]=min
n[i-1]第i個矩陣的行數,n[i]列數
ans=f[1][n]
最外層列舉的是區間長度
for i
for j
for k ×
從2開始列舉長度,
o(n^3)
2.樹形dp
f[i]表示 以i為根的子樹的資訊
列舉所有兒子,合併兒子資訊
f[i]=sigma f[j]
j∈son
o(n) 所有點兒子個數之和
葉子節點往上dp
dis(i,j) 從i到j距離
求所有點之間距離
f[i]表示從i到自己子樹裡面所有點之和
f[i]=sigma f[j]+sz[j]
j∈son
對於i到所有點的距離之和
在子樹 f[i]
不在子樹 祖先
別的子樹
i是1的兒子
無論怎麼走,都經過根
f[1]-f[i]+sz[i]//刨掉i子樹
f[1]-f[i]+sz[i]+sz[1]-sz[i]//多走一步
f[1]-f[i]+sz[i]+sz[1]-sz[i]+f[i]//加上子樹內
i不是1的兒子
都經過fa[i]=k
已經算過
f[i]子樹內 sz[i] g[i]子樹外 f[i]+g[i]???????
3.數字dp
l,r問從l到r有多少個數 r-l+1
一位一位的填,從高位到低位填
f[i][j][k] i從高位到低位,已經填到了第i位,
j 0/1變數 j=0 18->i已經滿足》l j=1 這幾位和l一樣
k 0: 18->i已經滿足 !<=(l-1) && <=r 字首和思想
windy數
幸運數字
4.狀壓dp
n個數 1,2,3,4,5....n
能組成多少個不同的排列
f[s],n個東西選還是沒選用乙個數來表示
轉移:列舉下乙個數要選什麼
i 0->n-1
if((s>>i)&1==0) i個東西沒選
f[s|(1 n在22,23左右 從一號點出發,所有點走一邊,走的最小距離這和 旅行商問題 爆搜搜不過 列舉下乙個點走什麼 f[s]= f[s|(1<不知道從哪個點走過來 f[s][j]最後停在j的最短距離 f[s|(1 售貨員的難題 5.插頭dp × 6.其它dp 90% pa 題目描述 漢諾塔公升級了 現在我們有n個圓盤和n個柱子,每個圓盤大小都不一樣,大的圓盤不能放在小的圓盤上面,n個柱子從左到右排成一排。每次你可以將一 個柱子上的最上面的圓盤移動到右邊或者左邊的柱子上 如果移動之後是合法的 話 現在告訴你初始時的狀態,你希望用最少的步數將第i 大的盤子移動到第i... problem 1.alien input file alien.in output file alien.out time limit 1s memory limit 128m 小y 最近正在接受來自x3 星球的外星人的採訪。在那個星球上,每個人的名字都是乙個正整數。所有在這個星球上的居民都是相互... 因為是剛聽完課所以想把思路記下來,有一些其實也是一知半解的,如果有dalao可以幫忙講解那真是再感謝不過了。還有為什麼我畫圖這麼醜,哇的一下哭出聲 problem a.最佳進製 如今我們最常用的是十進位制,據說這是因為人有十根手指。但事實上這並不是十分方便,10 只有四個因子 1 2 5 10,像 ...2016國慶清北Day2T1
清北學堂 2017 10 01
清北學堂 2017 10 06