noip在即,感覺即將退役,或許是最後一篇題解了。。。
求水的體積不是特別好求,我們考慮求出水+柱子
的體積最後再減去柱子的體積。
發現對於最高的柱子在中間的情況其實可以把最高柱子一側的柱子平移到另一邊,其實是一樣的,類似於下圖的這種情況:
由於我們計算的是水+柱子
的體積,因此對於乙個位置 \(pos\) 它有意義當且僅當它比他左邊或者右邊的柱子高。
同時根據上圖,我們可以發現其實所有柱子和水的體積之和就是兩個次高柱子的高度。
那麼我們可以先將所有的柱子從小到大列舉,每次插入乙個次小值,然後列舉插入這個柱子後可以構成幾個水+柱子
的體積是這樣高度的格仔。
乙個類似於揹包的東西直接bitset
維護即可。
#include#define int long long
#define ull unsigned long long
#define f() cout<
while(ch>='0'&&ch<='9')
return x*f;
}const int n=5e2+10,m=25e3+10;
int n,cnt,sum,s[n];
bitsetbit[n],ans;
#undef int
int main()
for(int i=sum;i<=m-10;i++) if(ans[i]) printf("%lld ",i-sum);
return 0;
}
題解 P3825 NOI2017 遊戲
dfs 2 sat被卡得好開心啊 這道題目乍一看是一道 3 sat 的題目,變數是每個地圖,選擇是車的型別。但要注意乙個事實 除了那d個地圖之外,其它的地圖事實上只有2種選擇。而對於那d個x型地圖,我們可以窮舉假設它是a型或b型,因為a型 b型的合法選擇的並還是x型,所以不影響答案。接下來就是連邊的...
題解 P3761 TJOI2017 城市
update 2020 7 15 優化了一下 markdown 的用法,增加了前面的題目描述。從加里敦大學城市規劃專業畢業的小明來到了乙個地區城市規劃局工作。這個地區一共有 n 座城市,n 1 條高速公路,保證了任意兩運城市之間都可以通過高速公路相互可達,但是通過一條高速公路需要收取一定的交通費用。...
題解 P3758 TJOI2017 可樂
題目鏈結 樹形 dp 多半是跑不過去的,可用矩陣快速冪解決 題目大意 給定乙個無向圖,0 秒時機械人在 1 號點,每秒可以走到另乙個相鄰的點或者不動或者自爆,求 t 秒內行動方案數 矩陣快速冪 分析 首先把問題統一,不動我們連自環即可,自爆可以連單向邊到虛擬點,虛擬點連自環,然後問題就變成了 t 秒...