下面的題解是我們厲害的學長給的,真是太厲害了。
對於每乙個點,我們都可以計算出該點平移到線段上的距離的範圍(我們用正數代表向數軸正向移動,用負數代表向數軸負向移動),比如,有乙個點位於數軸上\(4\)的位置,有兩條線段\([1,2],[5,6]\),則可以讓該點移動到線段上的平移距離的範圍為:\([-3,-2],[1,2]\)。所以我們可以讓$$ans[-3+max]...ans[-2+max],ans[1+max]...ans[2+max]$$
各增加1(這不就是區間加的操作嗎?)。
這樣我們遍歷所有的點,就可以得到正確的\(ans\)陣列了。掃瞄一遍\(ans\)陣列記錄最大值即可得到答案。
但是注意:
1.在進行區間加的操作的時候,應該採用差分的方式進行(不能暴力,使用線段樹、樹狀陣列等資料結構的時間複雜度也太高,並且相比差分**量更大)。
2.要先把有交集的線段合併,在統計答案,否則會重複計算。
總結一下就是,求出每個點到達所有的區間所走的長度,然後在這些點上進行加一,這樣我們就可以直接進行遍歷所有可以走的長度,尋找最大值。學長們真是太強了。
#include#include#includeusing namespace std;
const int maxn=1e4+7;
const int maxm=1e3+7;
const int maxlen=1e6+7;
int pos[maxn];
struct node
}node[maxm];
int ans[maxlen<<1];
int n, m, cnt;
int main()
int l, r;
for(int i=0; ioutans)
else if(sum==outans && delta > abs(i-maxlen))
}printf("%d %d\n", delta, outans);
return 0;
}
浮動引起的文字重影
在做專案開發時遇到了乙個怪異現象 整段內容被重影 的問題,一般來說這類問題在ie6中表現的比較多,但這次出人意料的是ie7也殃及在內。在早前網際網路上就有分享過使用html注釋會引起類似的文字倒影問題,但此時的頁面卻是沒有任何注釋 持續地測試分析問題變得越來越有趣了 測試結果為當不適當地使用floa...
Checkbox Text 重影問題的解決的方法
checkbox有個屬性值 設定此checkbox的text值就能夠看到checkbox後面的text.例如以下圖 我已閱讀並接受 與checkbox有時候會重影 在某些機器上會出現 就是疊加在一起。解決的方法就是設定這裡 android paddingleft 15dp 不同android版本號的...
鳴人的影分身
描述在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。那麼問題...