【題意】給定n個數的取值範圍,把他們分為a,b兩組。找到一種恰當的分組使得,兩個集合的差值的絕對值的最大值最小。n,li,ri<=200
【分析】首先乙個顯而易見的規律是,差值最大值一定是乙個集合最大值減去另乙個集合的最小值。這樣我們可以在確定集合時o(1)出解。然後二進位制列舉加玄學猴子排序就可以ac了,然而並不是正解。
考慮一種dp,定義f[i][j]為a集合中下界為i上界為j能否達到。設所有下界之和為suml,所有上界之和為sumr。b集合上下界為[suml-i,sumr-j]則差值絕對值最大值就是max(abs(suml-i-j),abs(sumr-i-j))。因為suml和sumr是常值,所以只要揹包i+j的值即可。因為suml<=i+j<=sumr,所以絕對值也可以去掉。
code:
#include
#include
#include
#include
using
namespace std;
const
int maxn=
81000
;bool f[maxn]
;int a[maxn]
,b[maxn]
,n;int
main()
int ans=sumb;
for(
int i=
0;i<=
40000
;i++)if
(f[i]
) ans=
min(ans,
max(sumb-i,i-suma));
printf
("%d\n"
,ans)
;return0;
}
國慶七天收穫總結
經過這一周和其他同學的努力,我在學習方面有很大收穫,具體如下。為了更高效的運用電腦,練習使用快捷鍵是必要的。在這七天,我主要學習使用了這些快捷鍵 win 將所選視窗移動到螢幕左 右側並將大小調整為一半螢幕的大小,在此基礎上可以繼續按win 進一步分屏。win 呼叫放大鏡,可以放大螢幕,在展示時可用。...
國慶第七天總結
今天的心態非常懵圈 1.心態是個非常重要的問題 2.不要下太確定的結論,這麼做一定不對什麼的 3.在賽場上就算隊友心態影響了你,也一定要學會去調節 但自己有不擅長去調節心態很容易受到別人的影響 4.打的有點難受,今天一點都不快樂 關於今天的題目,感覺就是數學專場,還出了個大模擬來讓我們來消磨時間也是...
國慶七天樂 第三天
動態規劃 基礎內容 狀態設計 往往是觀察在搜尋過程中需要用到的引數,所表 示的含義往往是 最大 最小 方案總數 0 1 狀態轉移方程一般以數列遞推的形式給出,在研究如何 實現 轉移設計 狀態都有什麼,應該如何轉移,注意無後效性 線性動態規劃 所有你不能分到其它類裡的dp就叫線性動態規劃 1攔截飛彈 ...