zoj 3509

zoj 3509题目大意:N个点,M次加边/删边/询问两点连通性操作,初始图为空。N题解:想什么呢,大力bitset!N*N*M/32花式水过!附代码:#include#defineN510usingnamespacestd;bitsets[N],ned,now,emp;intn,m;inlineboolquery(inta,intb){ ned=now=s[a

大家好,又见面了,我是你们的朋友全栈君。

题目大意:

N个点,M次加边/删边/询问两点连通性操作,初始图为空。N<=500,M<=50000,每条边最多加一次。

题解:

想什么呢,大力bitset!N*N*M/32花式水过!

附代码:

#include<bits/stdc++.h>
#define N 510
using namespace std;
bitset<N> s[N],ned,now,emp;
int n,m;
inline bool query(int a,int b){
	ned=now=s[a];ned[a]=0;
	int ta;
	while((ta=ned._Find_first())!=N){
		ned[ta]=0;
		ned|=(now|s[ta])^now;
		now|=s[ta];
		if(now[b]) return 1;
	}
	return now[b];
}
int main(){
	char ch[5];int a,b;
	int tot=0;
	while(~scanf("%d%d",&n,&m)){
		if(tot) puts("");
		for(int i=0;i<n;i++){
			s[i]=emp;
			s[i][i]=1;
		}
		printf("Case %d:\n",++tot);
		while(m--){
			scanf("%s%d%d",ch,&a,&b);
			a--,b--;
			if(ch[0]=='I') s[a][b]=s[b][a]=1;
			else if(ch[0]=='D') s[a][b]=s[b][a]=0;
			else{
				if(a==b) puts("YES");
				else if(query(a,b)) puts("YES");
				else puts("NO");
			}
		}
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详细讲解 移植Uboot到ARM9开发系统上

    详细讲解 移植Uboot到ARM9开发系统上首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。让uboot在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有些命令需要做修改。 SMDK2410:norFlash是AMD的1M的;ARMer9:是IntelE28F

    2022年5月1日
    48
  • 【SQL Server】关于报错“备份集中的数据库备份与现有的数据库”xxx”不同”的解决方案

    【SQL Server】关于报错“备份集中的数据库备份与现有的数据库”xxx”不同”的解决方案在做数据库备份与还原的过程中可能因为一下小的细节导致通过备份文件还原的时候报错:备份集中的数据库备份与现有的数据库"xxx"不同导致这种报错的原因是:备份文件与现有数据库的结构不一致因此要恢复数据库就需要去“选项”中勾选“覆盖现有数据库”这样备份就搞定了 …

    2022年6月9日
    39
  • B2C电子商务不只是开个网上商店那么简单

    B2C电子商务不只是开个网上商店那么简单

    2021年7月24日
    59
  • 五种MATLAB画圆方式程序「建议收藏」

    五种MATLAB画圆方式程序「建议收藏」clear,clc%方法一:使用隐函数的方法来绘制.holdonezplot(‘x^2+y^2-8′)%方法二:转换成参数函数来绘制图形.symsxytx=2*sin(t);y=2*cos(t);%程序如下:t=0:pi/100:2*pi;x=2*sin(t);y=2*cos(t);plot(x,y,’r’)%方法三:转换成匿名函数来绘制图形.t1=0:pi/100:2*pi;x1=@(tt)2*sin(tt)+1;y1=@(tt)2*cos(tt)+2;..

    2022年6月19日
    94
  • Navicat premium15 激活码【2022免费激活】2022.03.10

    (Navicat premium15 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1M2OME2TZY-eyJsaWNlb…

    2022年4月2日
    2.1K
  • ice最新服务器号码,我的世界手机版ice服务器号是什么 ice服务器被炸另有隐情…

    ice最新服务器号码,我的世界手机版ice服务器号是什么 ice服务器被炸另有隐情…近日,一个名为ICE的《我的世界》服务器被其他玩家恶意毁坏了,里面的建筑变得残破不堪,而服务器的存档也仅仅只有数天前的。要知道,这些建筑是很多玩家用大量的时间制造,想要复原不是那么简单。当玩家们还在寻找炸ICE服务器的凶手时,3月25号下午《我的世界》手机论坛中就有一个玩家发了帖子,说服务器是它炸的,它是《迷你世界》的玩家。这个帖子发出去后,在短时间内评论了达到了上千个,也没有版主去管他,就这样这…

    2022年4月27日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号