zoukankan      html  css  js  c++  java
  • bzoj1574 [Usaco2009 Jan]地震损坏Damage

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1574

    【题解】

    贪心把report的点的旁边所有点破坏即可。

    # include <stdio.h>
    # include <string.h>
    # include <iostream>
    # include <algorithm>
    // # include <bits/stdc++.h>
    
    using namespace std;
    
    typedef long long ll;
    typedef long double ld;
    typedef unsigned long long ull;
    const int M = 5e5 + 10;
    const int mod = 1e9+7;
    
    # define RG register
    # define ST static
    
    int n, m, K, p[M];
    bool isr[M];
    int head[M], nxt[M], to[M], tot=0;
    
    inline void add(int u, int v) {
        ++tot; nxt[tot] = head[u]; head[u] = tot; to[tot] = v;
    }
    inline void adde(int u, int v) {
        add(u, v), add(v, u);
    }
    
    bool vis[M];
    int ans = 0;
    inline void dfs(int x) {
        vis[x] = 1; ++ans;
        for (int i=head[x]; i; i=nxt[i])
            if(!vis[to[i]]) dfs(to[i]);
    }
    
    int main() {
        cin >> n >> m >> K;
        for (int i=1, u, v; i<=m; ++i) {
            scanf("%d%d", &u, &v);
            adde(u, v);
        }
        for (int i=1; i<=K; ++i) {
            scanf("%d", p+i);
            isr[p[i]] = 1;
        }
        for (int i=1, x; i<=K; ++i) {
            for (int j=head[p[i]]; j; j=nxt[j]) {
                x = to[j];
                if(!isr[x]) vis[x] = 1;
            }
        }
        dfs(1);
        cout << n-ans;
        return 0;
    }
    View Code
  • 相关阅读:
    day20
    day19
    day18
    day17
    day16
    day14 HTML
    day7课程
    day6
    python-day4
    python-day3
  • 原文地址:https://www.cnblogs.com/galaxies/p/bzoj1574.html
Copyright © 2011-2022 走看看