考試時拿染色企圖水20分結果hash衝突了,rp++
考慮離線亂搞一下,可以先把每個點最開始被哪個矩形包著求出來,然後把矩形被哪個矩形包著求出來。
這樣點作為對矩形的貢獻成為矩形的權,矩形連邊後形成一把森林。
按y從大到小進行掃瞄線,拿set維護這個掃瞄線,每次加入矩形時把自己左邊比自己晚的扔掉,然後隨便維護一下連邊和權值。
然後考慮到每個矩形可以對完全包含它的矩形做貢獻,於是我們倒序刪除矩形,維護乙個帶權並查集,每次把貢獻扔給父親就可以了
code:
#include #include #include #include const int n=6e5+10;
int n,m,mx[n],my[n],qx[n],qy[n],d[n],cnt;
struct beecute
beecute(int p,int id)
bool friend operator
void merge(int x,int y)
int main()
for(int i=1;i<=m;i++)
for(int i=cnt;i;i--)
--it;
while(it!=s.begin()&&it->id>id)
s.erase(it--);
if(!s.empty()&&it==s.begin()&&it->id>id)
s.erase(it);
s.insert(bee[i][j]);
}else if(it!=s.end())
++val[it->id];
} }for(int i=m;i;i--)
for(int i=1;i<=m;i++) printf("%d\n",ans[i]);
return 0;
}
2019.1.18 Block Voting 解題報告
這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...
Safebreaker 解題報告
又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...
路由 解題報告
路由 問題描述 有乙個tcp ip網路 每台計算機都有乙個或多個網路介面。每個介面根據它的ip位址和子網掩碼來識別 即兩個4位元組的數,兩個字 節之間有乙個 號.子網掩碼有乙個二進位制表示法 有k個 1 然 後是 m 個 0 k m 8 4 32 如 212.220.35.77 是乙個 ip 地 址...