正向进行很显然很BT, 所以逆向离线此题是个不错的选择. 使用并查集统计劫难之后的联通状态, 然后逐个添加结点即可.

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
using std::vector;
#define VERTEXMAX 400003
int set[VERTEXMAX], Des[VERTEXMAX], output[VERTEXMAX];
bool Vertex[VERTEXMAX];
vector<int> To[VERTEXMAX];
void Initialize()
{
memset(Vertex, true, sizeof(Vertex));
for (int i = ; i < VERTEXMAX; ++i)
set[i] = i;
}
int Father(int x)
{
if (set[x] == x)
return x;
return set[x] = Father(set[x]);
}
void Union(int x, int y, int &sum)
{
int a_Father = Father(x);
int b_Father = Father(y);
if (a_Father != b_Father)
{
set[a_Father] = b_Father;
--sum;
}
}
int main()
{
Initialize();
int V, E, Dn, Block, p = ;
scanf("%d %d", &V, &E);
for (int i = , x, y; i < E; To[x].push_back(y), To[y].push_back(x), ++i)
scanf("%d %d", &x, &y);
scanf("%d", &Dn);
p = Dn;
for (int i = ; i < Dn; Vertex[Des[i]] = false, ++i)
scanf("%d", &Des[i]);
Block = V - Dn;
for (int i = , j; i < V; ++i)
if (Vertex[i])
for (j = ; j < To[i].size(); ++j)
if (Vertex[To[i][j]])
Union(i, To[i][j], Block);
output[p--] = Block;
for (int i = Dn - , j, current_star; i > -; --i)
{
current_star = Des[i];
Vertex[current_star] = true;
++Block;
for (j = ; j < To[current_star].size(); ++j)
if (Vertex[To[current_star][j]])
Union(current_star, To[current_star][j], Block);
output[p--] = Block;
}
for (int i = ; i <= Dn; ++i)
printf("%d\n", output[i]);
return ;
}

[JSOI2008]星球大战的更多相关文章

  1. 1015: [JSOI2008]星球大战starwar

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MB Description 很久以前,在一个遥远的星系,一个黑暗的帝国 ...

  2. BZOJ1015[JSOI2008]星球大战starwar[并查集]

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 5253  Solved: 2395[Submit ...

  3. [1015][JSOI2008]星球大战starwar(并查集)

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 2124  Solved: 909[Submit] ...

  4. BZOJ 1015: [JSOI2008]星球大战starwar 并查集

    1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...

  5. bzoj1015:1015: [JSOI2008]星球大战starwar

    应该是全部读入之后再添加边用并查集就可以了. yyl用空间换时间.u[]v[]等将边预存起来. #include<cstdio> #include<cstring> #incl ...

  6. 【BZOJ】1015: [JSOI2008]星球大战starwar

    1015: [JSOI2008]星球大战starwar 题意:一个点数为N(1<= 40w),边数为M(1<=20w)的图,总共删除k个节点,问开始以及每次删除一个节点之后图的连通块数? ...

  7. BZOJ1015 [JSOI2008]星球大战starwar(并查集)

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 3895  Solved: 1750[Submit ...

  8. BZOJ 1015 [JSOI2008]星球大战starwar

    1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 3551  Solved: 1581[Submit ...

  9. BZOJ_1015_[JSOI2008]星球大战_并查集

    BZOJ_1015_[JSOI2008]星球大战_并查集 题意:很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的 机遇,一支反抗军摧毁了帝国的超级武器, ...

  10. [Luogu 1197] JSOI2008 星球大战

    [Luogu 1197] JSOI2008 星球大战 我算是真的沦为联赛选手了. 并查集裸题. 比较麻烦的是删点. 但是从后往前加点就好操作很多. 所以考虑离线,先存图,然后没被删的点之间,有边就合并 ...

随机推荐

  1. easy-ui datagrid

    Easy-ui引用    <link href="css/EasyUI/themes/icon.css" rel="stylesheet" type=&q ...

  2. uCGUI动态内存管理

    动态内存的堆区 /* 堆区共用体定义 */ typedef union { /* 可以以4字节来访问堆区,也可以以1个字节来访问 */ ]; /* required for proper aligne ...

  3. 【Catalina】

    Tomcat's servlet container was redesigned as Catalina in Tomcat version 4.x. The architect for Catal ...

  4. 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(2)

    请注明转载地址:http://www.cnblogs.com/arhat 今天在补一章吧,由于明天的事可能比较多,老魏可能顾不上了,所以今天就再加把劲在写一章吧.否则对不起大家了,大家看的比较快,可是 ...

  5. MINA实战

    backlog,放入到acceptor队列中还未处理最大数量: solinger参数,用来说明close之后是否直接关闭:参数越大,等待时间越长. mina中的udp处理,即使对端关闭也会继续传输,但 ...

  6. CSS3中translate、transform和translation的区别和联系

    translate:移动,transform的一个方法               通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...

  7. C# 发送邮件实例代码

    1.构造附件 static List<Attachment> BuildAttachments(List<EmailFile> files) { ) { return null ...

  8. 图片上没有line-height垂直居中

    <style> div {     width: 150px;     height: 155px;     line-height: 155px;     border: 1px sol ...

  9. Firefly 性能测试 报告

    原地址:http://bbs.gameres.com/thread_223724.html Firefly 性能测试 主要考虑点 网络IO的并发 进程间通信压力 数据读写压力 测试机配置: 操作系统 ...

  10. Cannot generate SSPI context---MS SQL ERROR

    http://www.cnblogs.com/newr2006/archive/2011/08/25/2153253.html Additional error information from SQ ...