loj10098 分离的路径
分析
此题要先用tarjan求点双联通分量,注意在求解是要注意一条无向边只能走一次。求完之后我们发现原来的图会变成一棵树,对于 这棵树我们发现答案是(叶子节点数量+1)/2,实际便是每两个节点之间连一条边。
代码
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<algorithm>
- #include<cctype>
- #include<cmath>
- #include<cstdlib>
- #include<queue>
- #include<ctime>
- #include<vector>
- #include<set>
- #include<map>
- #include<stack>
- using namespace std;
- int dfn[],low[],ist[],cnt,sum,belong[],id[],ans;
- vector<int>v[];
- vector<int>nv[];
- stack<int>a;
- inline void tarjan(int x,int fa){
- dfn[x]=low[x]=++cnt;
- a.push(x);
- ist[x]=;
- int wh=;
- for(int i=;i<v[x].size();i++){
- if(v[x][i]==fa&&!wh){
- wh=;
- continue;
- }
- if(!dfn[v[x][i]]){
- tarjan(v[x][i],x);
- low[x]=min(low[x],low[v[x][i]]);
- }else if(ist[v[x][i]]){
- low[x]=min(low[x],dfn[v[x][i]]);
- }
- }
- if(dfn[x]==low[x]){
- sum++;
- while(){
- int u=a.top();
- a.pop();
- ist[u]=;
- belong[u]=sum;
- if(u==x)break;
- }
- }
- return;
- }
- int main(){
- int n,m,i,j,k,x,y;
- scanf("%d%d",&n,&m);
- for(i=;i<=m;i++){
- scanf("%d%d",&x,&y);
- v[x].push_back(y);
- v[y].push_back(x);
- }
- tarjan(,);
- for(i=;i<=n;i++)
- for(j=;j<v[i].size();j++)
- if(belong[i]!=belong[v[i][j]])
- id[belong[v[i][j]]]++;
- for(i=;i<=sum;i++)
- if(id[i]==)ans++;
- printf("%d\n",(ans+)/);
- return ;
- }
loj10098 分离的路径的更多相关文章
- 从字符串总分离文件路径、命名、扩展名,Substring(),LastIndexOf()的使用;替换某一类字符串,Replace()的用法
一:从字符串总分离文件路径.命名.扩展名,上图 二:代码 using System; using System.Collections.Generic; using System.ComponentM ...
- BZOJ 1718: [Usaco2006 Jan] Redundant Paths 分离的路径( tarjan )
tarjan求边双连通分量, 然后就是一棵树了, 可以各种乱搞... ----------------------------------------------------------------- ...
- BZOJ1718:[USACO]Redundant Paths 分离的路径(双连通分量)
Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numb ...
- webpack配置:图片处理、css分离和路径问题
一.CSS中的图片处理: 1.首先在网上随便找一张图片,在src下新建images文件夹,将图片放在文件夹内 2.在index.html中写入代码:<div id="pic" ...
- 【bzoj1718】Redundant Paths 分离的路径
1718: [Usaco2006 Jan] Redundant Paths 分离的路径 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 964 Solve ...
- [Usaco2006 Jan] Redundant Paths 分离的路径
1718: [Usaco2006 Jan] Redundant Paths 分离的路径 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1132 Solv ...
- [BZOJ1718]:[Usaco2006 Jan] Redundant Paths 分离的路径(塔尖)
题目传送门 题目描述 为了从F个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分 ...
- Redundant Paths 分离的路径【边双连通分量】
Redundant Paths 分离的路径 题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields ...
- Redundant Paths 分离的路径
Redundant Paths 分离的路径 题目描述 为了从F(1≤F≤5000)个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们已经厌倦了被迫走某一条路,所以她 ...
随机推荐
- WordPress 中文图片 上传 自动重命名
由于国人很少有在上传图片前将图片名重命名为英语的,所以自动重命名对于WP来说尤为重要,特别是LINUX的不支持中文名的. WordPress上传多媒体的代码都存放于\wp-admin\includes ...
- AfxExtractSubString 函数的相关问题
AfxExtractSubString函数的用法 注:本文系rainy8758原创,转载请注明出处:http://blog.hjenglish.com/rainy8758/articles/10109 ...
- /etc/ntp.conf
摘录一: System:ubuntu10.04 配置文件路径:/etc/ntp.conf 配置格式:关键字(如server) 参数(如prefer) 以换行为结束,所以一个配置不能占多行. ...
- java编程思想第八章多态
前言: 封装:通过合并特征和行为创建新的数据类型. 实现隐藏:通过将细节“私有化”,把接口和实现分离. 多态:消除类型间的耦合关系.也称作动态绑定,后期绑定或运行时绑定. 8.1再论向上转型: 对象既 ...
- 拨打电话demo
- (IBAction)btnClick:(id)sender { UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:nil d ...
- 蓝桥杯 算法训练 ALGO-142 P1103
算法训练 P1103 时间限制:1.0s 内存限制:256.0MB 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间 ...
- 摘之知乎网友...PHYTIN学习
作者:东瓜王链接:https://www.zhihu.com/question/19593179/answer/23746083来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- QT5 地图的使用
https://blog.csdn.net/qq_28877125/article/details/80561829 博客园地址 资源下载地址: https://download.csdn.net/d ...
- java代码继承super
总结:多态 :. 当重写父类的方法的时,子类对象名可以调用父类的方法,以及不带参的构造方法 package com.addd; public class rr { int a, b; String c ...
- L2-004. 这是二叉搜索树吗?(前序转后序递归)
L2-004. 这是二叉搜索树吗? 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一棵二叉搜索树可被递归地定义为具有下列性质的 ...