quailty's Contest #1 A1 道路修建 Small
暴力。每次合并两个点之后,把新产生的连通关系都记录下来。
#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的更多相关文章
- A1. 道路修建 Small(BNUOJ)
A1. 道路修建 Small Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld Java cl ...
- quailty's Contest #1 道路修建 EXT(启发式合并)
题目链接 道路修建 EXT 考虑并查集的启发式合并,合并的时候小的子树的根成为大的子树的根的儿子. 可以证明这样整棵树的深度不会超过$logn$. 两个根合并的时候,产生的新的边的边权为当前的时间. ...
- 道路修建 2(自创题+题解)(From NOI2011)
道路修建这道题想来各位不陌生(传送门在此——Bzoj2435),看了此题,一开始以为是最初各个点处于分散状态,然后做了一下,直到发现标程都有点问题,才发现原题是说本来各点已经处于连接完毕的状态(phi ...
- 【BZOJ-2435】道路修建 (树形DP?)DFS
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3115 Solved: 1002[Submit][Statu ...
- 【bzoj2435】[NOI2011]道路修建
题目描述 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. 每条道路的修 ...
- 【NOI2011】道路修建 BFS
[NOI2011]道路修建 Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建 ...
- 【BZOJ】2435: [Noi2011]道路修建(树形dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=2435 我怎么感觉那么水.. 坑的是,dfs会爆...好吧..用bfs.. //upd:我的智商也是醉 ...
- bzoj 2435: [Noi2011]道路修建 树上 dp
2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- 2435: [Noi2011]道路修建 - BZOJ
Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. ...
随机推荐
- 如何查看自己电脑支持OpenGL core版本
1. 起因: 红宝书上的例子在电脑上运行后没有效果,但是怎么也找不到原因,反复对看了书上的源码和代码发现没有任何问题,但是就是没有树上写的效果 2. 思路:查看函数的说明,这里推荐使用docs.gl, ...
- Android 项目开发
可以使用mapview.getMapCenter()获取当前可视范围中心点的坐标,然后计算出数据库中的点与中心点的距离值,如果该距离在触发显示的范围内(比如100米),就显示该点到地图上.百度地图的S ...
- 689C - Mike and Chocolate Thieves 二分
题目大意:有四个小偷,第一个小偷偷a个巧克力,后面几个小偷依次偷a*k,a*k*k,a*k*k*k个巧克力,现在知道小偷有n中偷法,求在这n种偷法中偷得最多的小偷的所偷的最小值. 题目思路:二分查找偷 ...
- Math类的round方法小解
在Math类中有三个关于“四舍五入”的静态方法(ceil,floor,round): ① Math.ceil(number) 向上取整,Math.ceil(11.2) 结果:12 ...
- nagios总结二
log_file=/usr/local/nagios/var/nagios.log # 定义nagios日志文件的路径cfg_file=/usr/local/nagi ...
- selenium工具简介
通过selenium百科可知: 组件 Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例.随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化 ...
- cocos2d-js 帧序列动画
1.resource.js var res = { playerWalk_plist:"res/playerWalk.plist", playerWalk_png:"re ...
- 2017 ZSTU寒假排位赛 #1
题目链接:https://vjudge.net/contest/147102#overview. A题:给出一堆的点,要找出两条垂直的直线,一条与x轴呈45度.-->使得所有的点到任意一条直线的 ...
- magento 好好玩
Magento更换服务器的方法 1.把magento的整个目录打包.上传到新服务器,把magento数据库导出,然后在新服务器上导入.如果导不进去的是因为magento的数据库使用了外键约束,通过 ...
- Review Board的使用
代码审核工具.先在命令行界面,进入到工程的Main目录下,然后使用命令 svn diff>yus.diff 这样就将Main里面的所有内容生成了,然后在浏览器里进入到自己的Review Boa ...