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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux读写执行(RWX)权限

    Linux读写执行(RWX)权限rwx权限对文件rwx权限 对文件的作用 读权限(r) 表示可读取此文件中的实际内容,例如,可以对文件执行cat、more、less、head、tail等文件查看命令。 写权限(w) 表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行vim、echo等修改文件数据的命令。注意,无权限不赋予用户删除文件的权利,除非用户对文件的上级目录拥有写权限才可以。 执行权限(x) 表示该文件具有被系统执行的权限。Window系统中查看一个文件是否为可执行文件,

    2022年6月7日
    1.0K
  • java volatile原理

    java volatile原理一、基本概念先补充一下概念:Java内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。  可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是…

    2022年7月18日
    14
  • Redis客户端API

    Redis客户端APIRedis客户端APIclientsetNamexx为客户端设置名字clientlist列出与Redis服务端相连的所有客户端信息。info可查看Redis的所有信息。infomemory只查看Redis内存使用情况。infoclients记录了已连接客户端的信息限制redis连接maxclients、timeoutconfigsettimeout

    2022年6月6日
    33
  • mysql 修改隔离级别_设置mysql隔离级别

    mysql 修改隔离级别_设置mysql隔离级别1.查看当前会话隔离级别select@@tx_isolation;2.查看系统当前隔离级别select@@global.tx_isolation;3.设置当前会话隔离级别setsessiontransactionisolatinlevelrepeatableread;4.设置系统当前隔离级别setglobaltransactionisolationlevelrepeata…

    2022年6月15日
    431
  • Java BigDecimal的使用[通俗易懂]

    Java BigDecimal的使用[通俗易懂]BigDecimal加减乘除BigDecimalbignum1=newBigDecimal(“10”);BigDecimalbignum2=newBigDecimal(“5”);BigDecimalbignum3=null;//加法bignum3=bignum1.add(bignum2);System.out.pr…

    2022年6月7日
    31
  • 2014手机号码归属地数据库

    2014手机号码归属地数据库2014手机号码归属地数据库2014年最新版《手机号码归属地数据库》(更新时间:2014年4月6日),总共1万条记录。数据字段:-号码段(即。号码前7位)-省-市-供应商(含,通信协议)演示样例数据:”1300000″,”北京”,”北京”,”中国联通(GSM)””1…

    2022年7月22日
    15

发表回复

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

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