题意简述:给出无向图,会有重边,然后给你两个点a,b,让你计算有多少点对(x,y)满足从x到y的所有路径都经过a和b

题解:先从a,b两点出发进行dfs,dfs的过程中不能经过a,b两点(除了开始)

所有的点分为了三类,第一类是a能到但是b到不了,第二类是b能到但是a到不了,第三类是a,b都能到

首先每一类点的内部之间的点对对答案没有贡献,因为他们之间到达可以只经过a,b其中一个点

所以只需要考虑不同类之间的点对答案的贡献

第一类和第三类对答案没有贡献,因为对于点对x,y,x可以先a再到y,而不需要今过b点,因此没有贡献

同理第二类对第三类也没有贡献

第一类和第二类,他们相通必须经过a,b两点

因此答案就是第一类的点数×第二类的点数

const int maxn=2e5+5;
const int maxm=1e6+5;
const int inf=1e9; int n,m,a,b; int head[maxn],ver[maxm],nex[maxm],tot; void inline AddEdge(int x,int y){
ver[++tot]=y,nex[tot]=head[x],head[x]=tot;
} bool vis[maxn]; int cnt[maxn]; void dfs(int x,int f){
vis[x]=1;
cnt[x]+=f;
for(int i=head[x];i;i=nex[i]){
int y=ver[i];
if(!vis[y] && y!=a && y!=b) {
dfs(y,f);
}
}
} void solve(){
cin>>n>>m>>a>>b;
tot=0;
for(int i=1;i<=n;i++)
head[i]=0;
for(int i=0;i<m;i++){
int x,y;
scanf("%d%d",&x,&y);
AddEdge(x,y);
AddEdge(y,x);
}
for(int i=1;i<=n;i++)
vis[i]=cnt[i]=0;
dfs(a,1);
for(int i=1;i<=n;i++)
vis[i]=0;
dfs(b,2);
ll s1=0,s2=0;
for(int i=1;i<=n;i++){
// cout<<cnt[i]<<endl;
if(i!=a && i!=b) {
if(cnt[i]==1) s1++;
else if(cnt[i]==2) s2++;
}
}
//cout<<s1<<' '<<s2<<endl;
printf("%lld\n",s1*s2);
}
int main(){
int t;
cin>>t;
while(t--)
solve();
}

  

cf1276B的更多相关文章

  1. B. Two Fairs 解析(思維、DFS、組合)

    Codeforce 1276 B. Two Fairs 解析(思維.DFS.組合) 今天我們來看看CF1276B 題目連結 題目 給一個連通圖,並給兩個點(\(a,b\)),求有多少點對使得:任一路徑 ...

随机推荐

  1. C语言寒假大作战03

    这个作业属于哪个课程 软件4班 这个作业要求在哪里 C语言寒假大作战03 这个作业的目标 增加菜单程序各年级题目操作函数 参考文献 随机数rand 2.2.2 设计思路和遇到的问题 这次作业写好没多久 ...

  2. 【阿里云IoT+YF3300】14.阿里IoT Studio打造手机端APP

    在上一篇<13.阿里云IoT Studio WEB监控界面构建>中,我们介绍了用阿里云IoT Studio(原Link Develop)可视化构建WEB界面程序.本篇文章将介绍用阿里云Io ...

  3. 微信小程序如何添加新的icon图标

    第一步 先去阿里云下载图标http://www.iconfont.cn/ 根据需要把图片的代码下载下来,下载完成之后是一个 压缩包,解压压缩包里面有一个css的文件复制到项目中,更改后缀为wxss 第 ...

  4. 事务特性ACID及隔离级别

    注:例子引用来自:https://www.cnblogs.com/WJ-163/p/6023054.html 事务就是一组原子性的SQL查询,或者说一个独立的工作单元. 银行应用是解释事务必要性的一个 ...

  5. WebAPI 微信小程序的授权登录以及实现

    这个星期最开始 ,老大扔了2个任务过来,这个是其中之一.下面直接说步骤: 1.  查阅微信开发文档  https://developers.weixin.qq.com/miniprogram/dev/ ...

  6. pytorch之 Variable

    import torch from torch.autograd import Variable # Variable in torch is to build a computational gra ...

  7. 网站windows可以访问mac和linux无法访问【MTU MSS问题】

    环境: 阿里云LB 内网地址类型,代理后面的k8s上的服务 公司和阿里云之间vpn打通 在windows上进行访问一切正常,在相同的办公局域网linux主机内访问不通,mac笔记本访问同样不通,tel ...

  8. django的自定义权限

    最近在写发布系统,涉及到权限的控制 参考 黄小墨同学的博客实现了 如下 1:定义一张权限控制的表 [root@localhost app01]# tailf -25 models.py class P ...

  9. A water problem 大数取余。

    A water problem Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  10. python3配置阿里云短信服务

    1.申请阿里云短信服务,具体步骤看我的python2-Django配置短信服务 2.安装依赖 aliyun-python-sdk-core-v3 aliyun-python-sdk-dysmsapi= ...