日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[CSA35G][XSY3318]Counting Quests (DP)

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [CSA35G][XSY3318]Counting Quests (DP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XSY3318
CSA35G
對于一個詢問區間的集合SSS,求出每一個數被哪些區間覆蓋了,記為SiS_iSi?
要能保證猜出選中數,當且僅當每個數的SiS_iSi?互不相同。
考慮求出不滿足要求的集合SSS的個數。

首先可以觀察得到SiS_iSi?的一個性質:若a<b<c<da<b<c<da<b<c<dSa=Sc,Sb=SdS_a=S_c,S_b=S_dSa?=Sc?,Sb?=Sd?,則必有Sa=Sb=Sc=SdS_a=S_b=S_c=S_dSa?=Sb?=Sc?=Sd?

證明:因為Sa=ScS_a=S_cSa?=Sc?,所以如果一個區間覆蓋了aaa,一定也覆蓋了ccc,那么這個區間一定也覆蓋了bbb,又因為Sb=SdS_b=S_dSb?=Sd?,所以該區間一定也覆蓋了ddd。同理可證覆蓋了bbbcccddd的區間一定也覆蓋了其它三個數。

我們給每個數一個編號aia_iai?,滿足當且僅當SiS_iSi?相同的數aia_iai?相同。

由剛才的性質我們知道,不同的aaa值的排布 只可能是以下情況:
–x--xx–xy—y–yy–(x,yx,yx,y出現范圍呈并列關系)
–x--y-yy-y-x-xx-----(x,yx,yx,y出現范圍呈包含與被包含關系)
不可能是這種情況:
–xx-y-x-x-yyy-------(x,yx,yx,y出現范圍呈相交關系)

所以可以把 構造形如 x–xy–yz–z 的序列aaa 分解成 構造形如 x—x 的序列aaa,構造形如 y–y 的序列aaa,構造形如 z–z 的序列aaa 三個子問題。

并且在構造形如 x—x 的序列aaa時, — 不管怎么填,最后得到的方案都一定猜不出選中數。
y–y , z–z 同理。

形式化地,每次把aaa中的第一個數xxx放入bbb的末尾,然后在aaa中刪掉最后一個xxx前的所有數(包括最后一個xxx)。
例如a=[1,2,3,2,4,2,5,5,10,6,7,8,7,6,9]a=[1,2,3,2,4,2,5,5,10,6,7,8,7,6,9]a=[1,2,3,2,4,2,5,5,10,6,7,8,7,6,9]
此時b=[1,2,5,10,6,9]b=[1,2,5,10,6,9]b=[1,2,5,10,6,9]
可以發現,只包含被刪掉數的區間可有可無,但包含未被刪掉數的區間一定要使未被刪掉數的aaa值互不相同,即這些包含未被刪掉數的區間對應著一個長度為∣b∣|b|b的序列的答案。
例如序列bbb中一個包含1,2的區間,對應著序列aaa中一個包含1,2,3,2,4,2的區間。

那么就可以DP了:
fif_ifi?iii個數的答案,gi,jg_{i,j}gi,j?iii個數,處理之后之剩jjj個數的答案。則有:

fi=2Ci+12?∑j=1i?1fjgi,jf_i=2^{C_{i+1}^{2}}-\sum_{j=1}^{i-1}f_jg_{i,j}fi?=2Ci+12??j=1i?1?fj?gi,j?

gi,j=gi?1,j?1+∑k=0gi?k?2,j?12Ck+12g_{i,j}=g_{i-1,j-1}+\sum_{k=0}g_{i-k-2,j-1}2^{C_{k+1}^{2}}gi,j?=gi?1,j?1?+k=0?gi?k?2,j?1?2Ck+12?

時間復雜度:O(n3)O(n^3)O(n3)O(n2logn)O(n^2logn)O(n2logn)

還可以用多項式優化,但我不會。

總結

以上是生活随笔為你收集整理的[CSA35G][XSY3318]Counting Quests (DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。