zoukankan      html  css  js  c++  java
  • 【ZJOI2004】嗅探器

    一道鬼畜的题目,洛谷给的标签是紫题,怎么可能是紫题……

    原本我想找出在起点到终点的路径上的割点,但是看到了这良心的数据之后……

    由于数据很小,所以我们枚举中间点,然后进行一遍dfs,判断不经过这个中间点这张图是否联通即可。

    这就能过??

    是的……时间复杂度为O(n2)

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 int n;
     7 struct node {
     8     int next,to;
     9 }a[100010];
    10 int num,head[100010];
    11 bool vis[1010];
    12 int x,y;
    13 inline void add(int from,int to) {
    14     a[++num].next=head[from];
    15     a[num].to=to;
    16     head[from]=num;
    17 }
    18 bool dfs(int u,int pd) {
    19     for(int i=head[u];i;i=a[i].next) {
    20         int v=a[i].to;
    21         if(vis[v]) continue ;
    22         if(v==pd) continue ;
    23         if(v==x) continue ;
    24         if(v==y) return 1;
    25         vis[v]=1;
    26         if(dfs(v,pd)) return 1;
    27     }
    28     return 0;
    29 }
    30 int main() {
    31     scanf("%d",&n);
    32     while(scanf("%d%d",&x,&y)==2&&x&&y) {
    33         add(x,y);
    34         add(y,x);
    35     }
    36     scanf("%d%d",&x,&y);
    37     for(int i=1;i<=n;i++) {
    38         if(i==x||i==y) continue ;
    39         memset(vis,0,sizeof(vis));
    40         if(!dfs(x,i)) {
    41             printf("%d
    ",i);
    42             return 0;
    43         }
    44     }
    45     puts("No solution");
    46     return 0;
    47 }
    AC Code
  • 相关阅读:
    ARM 平台下的 SSHD 配置
    IISExpress 开放局域网访问
    qt5 交叉编译
    QT4 交叉编译
    make install 时指定安装路径
    linux 读取物理寄存器
    Windows 7 64bit Python 2 Install
    用eggjs返回xml格式数据,前端解析xml
    vue-cli项目中axios的配置文件
    webpack配置练习typescript的web项目
  • 原文地址:https://www.cnblogs.com/shl-blog/p/10807695.html
Copyright © 2011-2022 走看看