題目鏈結
智子
cq07年省選題……區間dp
當i==j時,子串明顯只需要塗色一次,於是f[i][j]=1。
當i!=j且s[i]==s[j]時,可以想到只需要在首次塗色時多塗一格即可,於是f[i][j]=min(f[i][j-1],f[i+1][j])
當i!=j且s[i]!=s[j]時,我們需要考慮將子串斷成兩部分來塗色,於是需要列舉子串的斷點,設斷點為k,那麼f[i][j]=min(f[i][j],f[i][k]+f[k+1][j])
由於f[i][j]的定義,我們可以知道f[1][n]即為答案。
#include#include#includeusing namespace std;
string s;
int n , f[105][105];
inline int mymin(int a , int b)
int a[200010],b[200010],c[200010];
setueq[200010];
int n;
int cc[200010],num;
int main()
sort(cc+1,cc+num+1);
num=unique(cc+1,cc+num+1)-(cc+1);
for(int i=1;i<=n;i++)
for(int i=1;i<=num;i++) fa[i]=i,siz[i]=1;
for(int i=1;i<=n;i++)
puts("yes");
if(x==y) continue;
if(siz[x]>siz[y]) swap(x,y);
fa[x]=y;
siz[y]+=siz[x];
for(set::iterator it = ueq[x].begin();it!=ueq[x].end();++it)
ueq[y].insert(ueq[x].begin(),ueq[x].end());
}else
if(x==y)
puts("yes");
ueq[x].insert(y);
ueq[y].insert(x);
} }fclose(stdout);
return 0;
}
歌者
不會狀壓dp……搜尋還爆long long!待更。
noip2017解題報告題解
noip 2017 提高組題解 by 杜瑜皓 november 12,2017 1 math 輸出 ab a b。因為如果 x,y 是 ax by n 的一組解,那麼 x bt,y at 也是一組解,容易發現最大的不滿足的 x,y 為 1,a 1 b 1,1 即 n ab a b 無解。2 comp...
Noip模擬考試6 解題報告
peter喜歡玩陣列。noip這天,他從jason手裡得到了大小為n的乙個正整數 陣列。peter求出了這個陣列的所有子段和,並將這n n 1 2個數降序排序,他想 知道前k個數是什麼。不難想到,從最大欄位和向下更新。用set實現 介紹一下set 用法與priority queue基本相同,區別是,...
11 5NOIP模擬賽解題報告
預計得分 100 40 30 170 實際得分 100 100 50 250 辣雞資料毀我青春 t1一眼不會做感覺要涼 t2好像一波折半搜尋就做完了 t3好像是神仙題不會做。打完t1暴力後去淦t2,結果最後在排序的時候把greater 寫成了greater 不過感謝辣雞資料放我一條活路。手玩了一下t...