暴力。每次合并两个点之后,把新产生的连通关系都记录下来。

#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std; int T, n, m, p, u, v, G;
int lastans, thisans;
int fa[ + ];
int d[ + ][ + ];
vector<int>c1;
vector<int>c2; int get(int x){
while (fa[x] != x)
x = fa[x] = fa[fa[x]];
return x;
} int main()
{
scanf("%d", &T);
while (T--)
{
scanf("%d%d", &n, &m); G = n;
memset(d, -, sizeof d);
lastans = ;
for (int i = ; i <= n; i++) fa[i] = i; for (int i = ; i <= m; i++)
{
scanf("%d%d%d", &p, &u, &v);
u = (u^lastans);
v = (v^lastans); if (p == )
{
int fu = get(u);
int fv = get(v); if (fu != fv)
{
G--;
c1.clear();
c2.clear(); for (int j = ; j <= n; j++)
{
int fi = get(j);
if (fi == fu) c1.push_back(j);
if (fi == fv) c2.push_back(j);
}
for (int a = ; a < c1.size(); a++)
for (int b = ; b < c2.size(); b++)
if (d[c1[a]][c2[b]] == -){
d[c1[a]][c2[b]] = i;
d[c2[b]][c1[a]] = i;
}
thisans = G;
fa[fu] = fv;
}
else
{
thisans = G;
}
}
else
{
if (d[u][v] == -) thisans = ;
else thisans = d[u][v];
}
printf("%d\n", thisans);
lastans = thisans;
}
}
return ;
}

quailty's Contest #1 A1 道路修建 Small的更多相关文章

  1. A1. 道路修建 Small(BNUOJ)

    A1. 道路修建 Small Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java cl ...

  2. quailty's Contest #1 道路修建 EXT(启发式合并)

    题目链接  道路修建 EXT 考虑并查集的启发式合并,合并的时候小的子树的根成为大的子树的根的儿子. 可以证明这样整棵树的深度不会超过$logn$. 两个根合并的时候,产生的新的边的边权为当前的时间. ...

  3. 道路修建 2(自创题+题解)(From NOI2011)

    道路修建这道题想来各位不陌生(传送门在此——Bzoj2435),看了此题,一开始以为是最初各个点处于分散状态,然后做了一下,直到发现标程都有点问题,才发现原题是说本来各点已经处于连接完毕的状态(phi ...

  4. 【BZOJ-2435】道路修建 (树形DP?)DFS

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3115  Solved: 1002[Submit][Statu ...

  5. 【bzoj2435】[NOI2011]道路修建

    题目描述 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. 每条道路的修 ...

  6. 【NOI2011】道路修建 BFS

    [NOI2011]道路修建 Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建 ...

  7. 【BZOJ】2435: [Noi2011]道路修建(树形dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2435 我怎么感觉那么水.. 坑的是,dfs会爆...好吧..用bfs.. //upd:我的智商也是醉 ...

  8. bzoj 2435: [Noi2011]道路修建 树上 dp

    2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  9. 2435: [Noi2011]道路修建 - BZOJ

    Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. ...

随机推荐

  1. 得到root,并且获取密码

    第一次使用ubuntu的时候 先使用这个命令 sudo passwd root 然后就可以改密码了

  2. FreeRTOS中断优先级配置(重要)

    FreeRTOS中断优先级配置(重要) 本章节为大家讲解FreeRTOS中断优先级配置,此章节非常重要,初学者经常在这里犯迷糊.对于初学者来说,本章节务必要整明白.12.1 NVIC基础知识12.2  ...

  3. dos命令(Cacls和Icacls) -- 显示或者修改文件的访问控制表

    1. dos帮助说明 cacls /? 注意: 不推荐使用 Cacls,请使用 Icacls. 显示或者修改文件的访问控制列表(ACL) CACLS filename [/T] [/M] [/L] [ ...

  4. echarts学习总结(一):图表溢出窗口,图表数据窗口显示不全

    如上图所示:echarts图形左面的数据没有完全显示 只需在option中定义一下grid,例如:                                                gri ...

  5. m,mm,mmm的用法

    通过查看android源码目录下的build/envsetup.sh文件,可知: - m:       Makes from the top of the tree. - mm:      Build ...

  6. hdu 3342 Legal or Not(拓扑排序)

    Legal or Not Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  7. CodeForces 567B Berland National Library

    Description Berland National Library has recently been built in the capital of Berland. In addition, ...

  8. PAT (Advanced Level) 1096. Consecutive Factors (20)

    如果是素数直接输出1与素数,否则枚举长度和起始数即可. #include<cstdio> #include<cstring> #include<cmath> #in ...

  9. Zend Optimizer not installed可能原因及解决方法

    Zend Optimizer not installed可能原因及解决方法 Optimizer, Zend 在配置php服务器的时候,所有的东西都安装好了,就是浏览一个要求zend的程序的时候,总是提 ...

  10. STM32F2系列低功耗总结

    序号 运行状态 进入指令(stm32f2xx_pwr.c) 退出条件 状态 IO管脚状态 进一步降低功耗的措施 1 运行模式 上电/系统复位后的默认模式, HCLK驱动CPU运行代码 可通过指令 进入 ...