1. 程式人生 > >洛谷 P1311 【選擇客棧】

洛谷 P1311 【選擇客棧】

列舉在那個咖啡店喝咖啡

想要計算咖啡店兩側同色的客棧的對數

列舉i求和(左邊第i種顏色的個數*右邊第i種顏色的個數)

字首和+字尾和

f[i][j]f[i][j]表示到第i家客棧及之前顏色為j的客棧有幾個

f[i][j]=f[i1][j]+(color[i]==j)f[i][j]=f[i-1][j]+(color[i]==j)

g[i][j]g[i][j] 表示到第i家客棧及之後顏色為j的客棧有幾個

g[i][j]=g[i+1][j]+(color[i]==j)g[i][j]=g[i+1][j]+(color[i]==j)

假設當前客棧咖啡店消費<=p 當前位置為i 顏色為x

sigma(f[i1][j]g[i+1][j])+f[i1][x]+g[i+1][x]sigma( f[i-1][j]*g[i+1][j] )+f[i-1][x]+g[i+1][x]