您当前的位置: 首页 > 

先求一个导

暂无认证

  • 2浏览

    0关注

    291博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

天梯赛自主练习3补题 (16年决赛,我要是16年去打决赛就有机会国一了,不过现在22年,不能拿现在的水平和原来比)

先求一个导 发布时间:2022-04-14 16:58:08 ,浏览量:2

题目 这16年的确实简单啊,我都能达到250分了,羡慕16年。

L2-1 红色警报 题意: 给定n个点m条边,依次删除k个点。每删除一个点,根据删除后连通块是否增加决定输出什么,如果所有点都被删除,输出"Game Over". 思路: 我想着是倒着操作,LCT我肯定不会,只能倒着连边。如果某个点连接的两个点不在一棵树上,说明删除该点时二者不连通了。但是wa了一个点,不知道为什么,上完课研究一下。 题解用的方法很暴力,但是确实没问题,而且能保证正确性。没删除一个点重新建并查集,nnn,500^3,确实是个能过的复杂度。 时间复杂度: O(nnn) 代码:

#include
using namespace std;
const int N = 502;
#define fir(i,a,b) for(int i=a;i>n>>m;
	fir(i,0,n-1) fa[i] = i;
	for(int i=0;i>x>>y;
		a[x][y] = a[y][x] = 1;
		Merge(x,y);
	}
	int cnt = 0;
	fir(i,0,n-1) if(find(i) == i) cnt++;
	cin>>k;
	for(int t=0;t>x;
		vis[x] = 1;
		fir(i,0,n-1) fa[i] = i;
		for(int i=0;ix;
		int l = fun(s1);
	    int r = fun(s2);
	    add(l,r,x); add(r,l,x);
	}
	Dij(1);
	int now = 2;
	vector va;
	while(now != -1)
	{
		va.push_back(now);
		now = pre[now];
	}
	reverse(va.begin(),va.end());
	for(int i=0;i            
关注
打赏
1662037414
查看更多评论
0.0383s