bzoj_1015_[jsoi2008]星球大戰_並查集
題意:很久以前,在乙個遙遠的星系,乙個黑暗的帝國靠著它的超級**統治者整個星系。某一天,憑著乙個偶然的
機遇,一支反抗軍摧毀了帝國的超級**,並攻下了星系中幾乎所有的星球。這些星球通過特殊的以太隧道互相直
接或間接地連線。 但好景不長,很快帝國又重新造出了他的超級**。憑藉這超級**的力量,帝國開始有計畫
地摧毀反抗軍占領的星球。由於星球的不斷被摧毀,兩個星球之間的通訊通道也開始不可靠起來。現在,反抗軍首
領交給你乙個任務:給出原來兩個星球之間的以太隧道連通情況以及帝國打擊的星球順序,以盡量快的速度求出每
一次打擊之後反抗軍佔據的星球的連通快的個數。(如果兩個星球可以通過現存的以太通道直接或間接地連通,則
這兩個星球在同乙個連通塊中)。
分析:離線,把刪除當作插入,每次用並查集維護連通塊個數。
**:
#include #include #include using namespace std;#define n 400050
int n,fa[n],m,q[n],ans[n],cnt;
int head[n],to[n<<1],nxt[n<<1],vis[n],k;
inline void add(int u,int v)
int find(int x)
return fa[x];
}int main()
for(i=1;i<=n;i++)vis[i]=1;
scanf("%d",&k);
ans[k]=n-k;
for(i=1;i<=k;i++)
for(i=1;i<=n;i++)}}
vis[q[k]]=1;
for(i=k-1;i>=0;i--)
}vis[q[i]]=1;
}for(i=0;i<=k;i++)
}
jsoi2008星球大戰bzoj1015
很簡單的一題,但是資料範圍看錯了和讀題時沒看到是0到n 1搞得wa了一次tle了一次真是弱啊喵,就是簡單的一道離線然後並查集加點就可以了喵 include include include include define ll long long define n 400005 define m 400...
bzoj1015 星球大戰starwar
很久以前,在乙個遙遠的星系,乙個黑暗的帝國靠著它的超級 統治者整個星系。某一天,憑著乙個偶然的機遇,一支反抗軍摧毀了帝國的超級 並攻下了星系中幾乎所有的星球。這些星球通過特殊的以太隧道互相直接或間接地連線。但好景不長,很快帝國又重新造出了他的超級 憑藉這超級 的力量,帝國開始有計畫地摧毀反抗軍占領的...
並查集亂搞 bzoj1015
建圖建錯4次 改了2個鐘。這本是道水題。1 program hehe 2type 3 edge record 4q,z,next longint 5end 6 var7 n,m,q,i,j,k,cnt longint 8 p,pd array 0.500000 of boolean 9 e arra...