//很簡單的一題,但是資料範圍看錯了和讀題時沒看到是0到n-1搞得wa了一次tle了一次真是弱啊喵,就是簡單的一道離線然後並查集加點就可以了喵
#include#include#include#include#define ll long long
#define n 400005
#define m 400005
using namespace std;
ll read()
while(ch>='0'&&ch<='9')
return x;
}struct wakaka
e[m];
int ls[n],cnt,tot,f[n],used[n],v[n];
int ans[m],q[n],n,m,qes;
void add(int x,int y)
int findd(int x)
void ins(int x)}}
}int main()
for (int i=1;i<=qes+1;i++)
printf("%d\n",ans[i]);
return 0;
}
jsoi2008 星球大戰
題目描述 很久以前,在乙個遙遠的星系,乙個黑暗的帝國靠著它的超級 統治者整個星系。某一天,憑著乙個偶然的機遇,一支反抗軍摧毀了帝國的超級 並攻下了星系中幾乎所有的星球。這些星球通過特殊的以太隧道互相直接或間接地連線。但好景不長,很快帝國又重新造出了他的超級 憑藉這超級 的力量,帝國開始有計畫地摧毀反...
JSOI 2008 星球大戰
題目傳送門星球大戰 題目描述 很久以前,在乙個遙遠的星系,乙個黑暗的帝國靠著它的超級 統治者整個星系。某一天,憑著乙個偶然的機遇,一支反抗軍摧毀了帝國的超級 並攻下了星系中幾乎所有的星球。這些星球通過特殊的以太隧道互相直接或間接地連線。但好景不長,很快帝國又重新造出了他的超級 憑藉這超級 的力量,帝...
JSOI2008 星球大戰
題意簡述 給出n個點的無向圖,每次刪去乙個點,詢問當前的連通塊個數。刪點太難做,不如加點,首先將詢問讀取,然後離線倒著處理。標記每個已經刪去的點,首先計算出所有沒標記的點一共組成多少個連通塊。然後依次加點,同時刪去標記,首先將連通塊個數增加1,而當前點每與其他的連通塊相連,連通塊個數減少1,最終算出...