洛谷1758 BZOJ1566 管道取珠題解

2022-05-20 12:21:46 字數 623 閱讀 4813

題目鏈結

一道人類智慧型的dp題

首先我們可以將∑ai^2轉化為求取兩次,兩次一樣的方案數

然後用f[i][j][k][l]表示第乙個人在第乙個串中取到i第二個串中取到j

第二個人在乙個串中取到k第二個串中取到l的方案數

顯然i+j=k+l,所以第四維可以省掉

推出方程後,可以看出f[i][j][k][l]只與f[i]與f[i-1]有關,所以可以用滾動陣列優化

//

luogu-judger-enable-o2

# include# include

# include

# include

const

int rqy = 1024523

;const

int mn = 505

;char

a[mn],b[mn];

int f[5

][mn][mn];

inline

void cal(int &a,int &b)

intn,m;

intmain()

printf("%d

",f[cur][m][n]);

return0;

}

洛谷 P1566 加等式

題目描述 對於乙個整數集合,我們定義 加等式 如下 集合中的某乙個元素可以表示成集合內其他元素之和。如集合中就有乙個加等式 3 1 2,而且3 1 2 和3 2 1是相同的加等式,也是這個集合唯一的加等式。給定乙個整數集合,程式設計找出其所有的加等式的個數 輸入輸出格式 輸入格式 第一行為t,表示測...

洛谷P1758 NOI2009 管道取珠

題目 管道取珠是小x很喜歡的一款遊戲。在本題中,我們將考慮該遊戲的乙個簡單改版。遊戲畫面如圖1所示 圖1 遊戲初始時,左側上下兩個管道分別有一定數量的小球 有深色球和淺色球兩種型別 而右側輸出管道為空。每一次操作,可以從左側選擇乙個管道,並將該管道中最右側的球推入右邊輸出管道。例如 我們首先從下管道...

洛谷 3512 bzoj 2096 題解

題外話 bzoj2096現在找不到了。要交還是上洛谷。給定n,k和乙個長度為n的序列,求最長的最大值最小值相差不超過k的連續序列 翻譯的很清楚 輸入 3 9 5 1 3 5 8 6 6 9 10 輸出 4 解釋 5 8 6 6 和 8 6 6 9都是正確的 線段樹 二分長度好像珂以做,但是只能拿80...