XidianOJ 1072 National Disaster

--正文

求无向图桥模板题

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
#define SIZE 10005
int dfn[SIZE],low[SIZE];
vector<int> link[SIZE];
int n,m;
int res = 0,times = 0;
void dfs(int u,int pre){
    times ++;
    dfn[u] = times; low[u] = times;
    int i;
    for (i=0;i<link[u].size();i++){
        int v = link[u][i];
        if (v == pre) continue;
        if (dfn[v] == 0){
            dfs(v,u);
            low[u] = min(low[u],low[v]);
            if (dfn[u] < low[v]) res ++;
        }
        else low[u] = min(low[u],dfn[v]);
    }
}

int main()
{
    int time,T;
    scanf("%d",&T);
    for (time=1;time<=T;time++){
        scanf("%d %d",&n,&m);
        res = 0; times = 0;
        memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low));
        int i;
        for (i=0;i<n;i++){
            link[i].clear();
        }
        for (i=1;i<=m;i++){
            int a,b;
            scanf("%d %d",&a,&b);
            link[a].push_back(b); link[b].push_back(a);
        }
        dfs(0,-1);
        printf("%d\n",res);
    }
    return 0;
}
时间: 2024-10-23 08:07:01

XidianOJ 1072 National Disaster的相关文章

voa 2015 / 4 / 27

As reports of the death toll rise in Nepal, countries and relief organizations around the world are rushing to send personnel and supplies to aid the search and rescue effort. Within hours after the earthquake struck Nepal on Saturday, April 25, Indi

HDU4081 Qin Shi Huang&#39;s National Road System【Kruska】【次小生成树】

Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3979    Accepted Submission(s): 1372 Problem Description During the Warring States Period of ancient China(4

[kaggle入门] Titanic Machine Learning from Disaster

Titanic Data Science Solutions¶ https://www.kaggle.com/startupsci/titanic-data-science-solutions 数据挖掘竞赛七个步骤:¶ Question or problem definition. Acquire training and testing data. Wrangle, prepare, cleanse the data. Analyze, identify patterns, and explo

HDU 4081 Qin Shi Huang&#39;s National Road System 最小生成树

分析:http://www.cnblogs.com/wally/archive/2013/02/04/2892194.html 这个题就是多一个限制,就是求包含每条边的最小生成树,这个求出原始最小生成树然后查询就好了 然后预处理那个数组是O(n^2)的,这样总时间复杂度是O(n^2+m) 这是因为这个题n比较小,如果n大的时候,就需要路径查询了,比如LCA 或者树链剖分达到O(mlogn) #include <iostream> #include <algorithm> #incl

BZOJ 1072 [SCOI2007]排列perm

考虑到s的长度特别小,只有10,可以考虑状压dp. 设F[S][d]表示当选了集合S(用二进制压位表示)中的所有位置,对D取模的结果为d的方案总数:不难想到转移和初始化. 初始化:F[0][0]=1  0在这里表示空集合 转移:F[S][(d * 10 + s[i]-'0') % D]=sum{F[S0][d]}  S0是S的一个子集,并且刚好只比S少一个元素i 注意,重复的数字被算了多遍.样例当中就有.因此最后的答案要除以所有重复的数字个数的阶乘. 看代码就明白啦~ (再补充一个要用到状压技巧

HDU4081 Qin Shi Huang&#39;s National Road System(次小生成树)

枚举作为magic road的边,然后求出A/B. A/B得在大概O(1)的时间复杂度求出,关键是B,B是包含magic road的最小生成树. 这么求得: 先在原图求MST,边总和记为s,顺便求出MST上任意两点路径上的最长边d[i][j]. 当(u,v)是magic road时, 如果它在原本的MST上,则B就等于s-原(u,v)的权,而原(u,v)的权其实就是d[u][v]: 如果它不在原本的MST上,则B就等于s-d[u][v]+0. 总之就是一个式子:B=s-d[u][v]. 于是,在

National Library of Medicine

http://www.nlm.nih.gov/ 基因序列下载 http://www.ncbi.nlm.nih.gov/genome/guide/human/resources.shtml NLM Tutorial What is the NLM? The National Library of Medicine (NLM), which is a division of the National Institutes of Health, is the world's largest biome

[BZOJ 1072][SCOI 2007]排列perm

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1072 这题范围小,s的长度不超过10,如果用二进制表示每一位数字是否被选择到的话,二进制最大不超过2^10,可以用状压DP做. 我们把这题分两步走 第一步,把输入的字符串s中所有的数字都当成不同的,在这种情况下求出方案总数 用f[S][j]表示当前每一位数字是否选到的二进制状态为S,拼出的数mod d=j的方案数. 决策就是可以从所有没有被选到的数字中,选择一个数放到之前拼好的数

HDU 1072 (不一样的入队条件) Nightmare

之前的BFS都是需要一个标记数组,但这个题不一样,因为可能一个格子不止走一次. 那么我们就要寻找新的入队条件:left比上次经过的时候大才入队(left表示上次经过该点时剩余的时间). 为什么呢?我们重复走过一个点只有一个可能,那就是为了去取那个,所以如果取完后再回头经过这个点的时候剩余时间变多了,我们的目的就达到了. left数组初值为0 优化: 重置时间的装置最多取一次就够了,所以可以再开一个标记数组vis记录装置是否用过. 1 //#define LOCAL 2 #include <cst