題解:
實際上求的是所有子集的並集長度之和。
把座標離散化之後,可以單獨考慮每一段區間在並集內部的出現次數,如果有m個大區間覆蓋這段小區間,就會發現當且僅當這m個區間都不在子集中時,這一小段區間不會成為並集的一部分,所以一共有2n
−2n−
m 個子集包含這段小區間。把長度乘以出現次數即可。
總結:1、出現區間計數或者區間並的時候,如果簡單的話可以直接求;
2、如果題目複雜, 可以先算出每一段小區間的貢獻,再累加。
#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 100005;
const int mod = 1e9+7;
struct segment
seg[maxn<<1];
int n,tot;
ll p[maxn];
bool cmp(segment a,segment b)
int main()
sort(seg,seg+tot,cmp);
int cnt = 0;
ll ans = 0;
for(int i = 0; i < tot; i++)
printf("%lld\n",ans);
} return 0;
}
hdu 5481 區間離散 組合
第二個樣例解釋 集合中含有2個區間 乙個是 0,2 編號為1,乙個是 1,3 編號為2。集合的子集有4個 1 空集,集合中區間的並的長度為0 2 集合中區間的並的長度為2 3 集合中區間的並的長度為2 4 集合中區間的並為 0,3 長度為3 考慮某乙個區間對於答案的貢獻 若某個區間沒有被其它區間覆蓋...
hdu5984 Pocky(猜數學期望公式)
題目大意 對於一根長度為l的木棍,每次等概率的取乙個點將其分成兩半,然後吃掉左邊一半,直到剩下的長度小於d,計算需要吃 分割 次數的數學期望 題目思路 顯然,如果l d相同,則結果必定相同 根據ln2 0.693147可以推測出結果應該是ln l d 1 再單獨考慮不需要分割的情況 d l 居然還可...
hdu5984 數學期望(詳細具體推理)
題目大意 給定一根長度為l的木棒,每次等概率的取乙個點將其分成兩段,然後吃掉左邊的,如此重複直到剩下的長度小於d,求分割次數的期望 設f x 為長度為x的木棒的期望。1 當x d時,已經不用分割了,故期望f x 0 2 當x d時,f x 1 f 0 d f d x 1 表示在長度為x的木棒上分割一...