Noip模擬題解題報告

2021-08-28 18:54:18 字數 1225 閱讀 6811

題目鏈結

智子

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...