zoukankan      html  css  js  c++  java
  • bzoj 1015

    很早就看到了题目但看到问题缺漏就果断跳开了。。。你萌说乱搞,然后我乱搞就华丽丽的TLE了。。。
    至于倒着加点,脑子转不过来自己应该想不到orz

     1 #include<bits/stdc++.h>
     2 #define inc(i,l,r) for(i=l;i<=r;i++)
     3 #define dec(i,l,r) for(i=l;i>=r;i--)
     4 #define inf 1e9
     5 #define mem(a,b) memset(a,b,sizeof(a))
     6 #define NM 400000+1
     7 using namespace std;
     8 struct edge{
     9     int t;
    10     edge *next;
    11 }e[2*NM],*h[NM];
    12 int a[NM],f[NM],q[NM],ans,s,i,n,m,x,y;
    13 bool v[NM];
    14 void add(int x,int y){
    15     e[++s].t=y;e[s].next=h[x];h[x]=&e[s];
    16 }
    17 int find(int x){
    18     return f[x]==x?x:f[x]=find(f[x]);
    19 }
    20 void addnode(int x){
    21     for(edge *j=h[x];j;j=j->next)
    22     if(v[j->t]){
    23         int a=find(j->t),b=find(x);
    24         if(a!=b){
    25             f[a]=b;
    26             ans--;
    27         }
    28     }
    29 }
    30 int main(){
    31     scanf("%d%d",&n,&m);
    32     inc(i,0,n-1)f[i]=i;
    33     inc(i,1,m){
    34         scanf("%d%d",&x,&y);
    35         add(x,y);add(y,x);
    36     }
    37     mem(v,true);
    38     scanf("%d",&m);
    39     inc(i,1,m){
    40         scanf("%d",&a[i]);
    41         v[a[i]]=false;
    42     }
    43     inc(i,0,n-1)
    44     if(v[i]){
    45         ans++;
    46         addnode(i);
    47     }
    48     q[m+1]=ans;
    49     dec(i,m,1){
    50         ans++;
    51         v[a[i]]++;
    52         addnode(a[i]);
    53         q[i]=ans;
    54     }
    55     inc(i,1,m+1)printf("%d
    ",q[i]);
    56     return 0;
    57 }
    View Code
  • 相关阅读:
    golang通知协程退出
    Linux Centos7下安装Elasticsearch
    es
    Laravel 别名 Facades的用法
    SVN使用时遇到的小问题
    http 重定向到 https
    Git-版本回退
    selenium---上传文件(非input标签)
    selenium---生成BeautifulReport报告
    windows搭建ngnix图片服务器
  • 原文地址:https://www.cnblogs.com/onlyRP/p/4719764.html
Copyright © 2011-2022 走看看