zoj 2588 Burning Bridges 边联通性

简介:

  最基本的找桥,要注意0的情况,不用输出空行,zoj现在真慢


/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
#define Maxm 200005
#define Maxn 10005
int first[Maxm];
int U[Maxm];
int num[Maxm];
int next[Maxm];
int vis[Maxn],low[Maxn],dph[Maxn];
vector<int> ans;
int cnt;
void add(int v,int u)
{
    cnt++;
    for(int i=first[v];~i;i=next[i])
        if(U[i]==u)//重边处理
        {
            num[i]++;
            return;
        }
    next[cnt]=first[v];
    first[v]=cnt;
    U[cnt]=u;
    num[cnt]=1;

}
int dfs(int v,int f,int d)
{
    vis[v]=1;
    low[v]=dph[v]=d;
    for(int i=first[v];~i;i=next[i])
    {
        int &u=U[i];
        if(vis[u])
        {
            if(u!=f)low[v]=min(low[v],dph[u]);
        }
        else
        {
            dfs(u,v,d+1);
            if(low[u]>dph[v]&&num[i]==1)//num[i]>1为有重边
                ans.push_back(i|1);
            low[v]=min(low[u],low[v]);
        }
    }
}
int main()
{
    int T;
    int n,m;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        int i;
        int a,b;
        memset(vis,0,sizeof(vis));
        memset(first,-1,sizeof(first));
        cnt=-1;
        for(i=0;i<m;i++)
        {
            scanf("%d%d",&a,&b);
            add(a,b);add(b,a);
        }
        ans.clear();
        dfs(1,-1,0);
        sort(ans.begin(),ans.end());
        printf("%d\n",ans.size());
        if(ans.size())printf("%d",(ans[0]+1)/2);
        for(i=1;i<ans.size();i++)
            printf(" %d",(ans[i]+1)/2);
        if(ans.size())puts("");
        if(T)puts("");
    }
}


目录
相关文章
|
12月前
|
Linux 网络安全 Python
dash-plotly项目
dash-plotly项目
|
11月前
|
存储 算法 Ubuntu
你可能不知道 xz 也是一种压缩格式,并且还相当惊艳
在现代计算中,文件压缩是节省存储空间和提高传输效率的关键技术。Linux 提供了多种压缩工具,如 `tar`、`zip`、`gzip`、`bzip2` 和 `xz`。本文重点介绍 `xz` 命令,探讨其高压缩比的优势及其基本用法,适合编程新手学习。
492 4
|
分布式计算 Spark 大数据
Apache Spark中国技术交流社区历次直播回顾(持续更新)
Apache Spark中国技术交流社区,由阿里巴巴开源大数据技术团队成立,持续输出spark相关技术直播、原创文章、精品翻译,钉钉群内千人交流学习,欢迎加入。钉钉入群 https://qr.dingtalk.com/action/joingroup?code=v1,k1,jmHATP9Tk+okK7QZ5sw2oWSNLhkt2lCRvfHRdW7XhUQ=&_dt_no_comment=1&origin=11 更多视频和ppt资料请入群获得。
Apache Spark中国技术交流社区历次直播回顾(持续更新)
【永劫无间的捏脸功能】调整角色的基本面部特征,如眼睛大小、眼角、嘴唇、下巴
【永劫无间的捏脸功能】调整角色的基本面部特征,如眼睛大小、眼角、嘴唇、下巴
311 0
|
JavaScript 物联网 开发者
WebGL的3D框架比较 ThingJS 和 Three.js
随着flash的没落,浏览器的原生能力的兴起。在3D方面WebGL不管从功能还是性能方面都在逐渐加强。2D应用变为3D应用的需求也越来越强烈。 win10的画图板支持3D图片,2d工具photoshop也开始逐步集成了3D工具。
5026 0
|
监控 安全 Nacos
MSE-Nacos测评报告
个人测评
337 0
|
数据可视化 关系型数据库 MySQL
Kibana:kibana Lens让你更加轻松、直观的构建数据看板(一)操作栏介绍
elastic官方在7.5版本的时候推出了kibana Lens来帮助用户更加简单、直接的创建可视化,上一期我们也简单的示范了利用Len来创建柱状图和折线图。如果不清楚的可以看看上一期文章:
509 0
Kibana:kibana Lens让你更加轻松、直观的构建数据看板(一)操作栏介绍
|
人工智能 自然语言处理 安全
支小蜜校园团餐系统赋能校园食堂打餐效率提升70%
支小蜜智慧校园-团餐系统赋能校园食堂管理能力、提升打餐效率、降低人工成本。
支小蜜校园团餐系统赋能校园食堂打餐效率提升70%
|
运维
分享一些个人总结的阿里云产品使用和运维的经验
个人最近三年阿里云使用和运维经验的总结分享。年底我终于把它写成了一个文档,希望分享给大家。我做的都是基础的运维,没什么高深的内容。可能还会有错误,请大家批评指正!
531 0
|
存储 编解码 生物认证
华为Mate 10和Mate 10 Pro终极对比,结果很尴尬?
去年12月,作为华为的两大高端型号之一,Mate 9系列同时推出了普通版、pro版和保时捷版,后两者作为向高端市场的进一步上探并收到了不错的市场反响后。今年华为再接再厉,继续推出了Mate 10系列的普通版、pro版和保时捷版。
917 0
华为Mate 10和Mate 10 Pro终极对比,结果很尴尬?