题目链接:https://atcoder.jp/contests/abc120/tasks/abc120_d

题意 先给m条边,然后按顺序慢慢删掉边,求每一次删掉之后有多少对(i,j)不连通(我应该解释对了吧)

删边这个过程就可以从反方向进行,相当于从m到1慢慢加边

然后就把连通的用并查集存起来,另用一个s数组来存每个点和他连通的有几个点

不连通的就减去s[i]*s[j]就好了

初始的是C(n,2) 没边的时候所有点都不连通嘛。

代码如下

#include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std; const int maxn = 1e5 + ;
pair<ll, ll> p[maxn];
ll par[maxn];
ll s[maxn];
ll sum;
ll ans[maxn];
ll find(ll x) { return par[x] == x ? x : par[x] = find(par[x]); } int main() {
ll n, m;
scanf("%lld%lld", &n, &m);
for (int i = ; i <= n; i++) {
par[i] = i;
s[i] = ;
}
for (int i = ; i < m; i++) {
scanf("%lld%lld", &p[i].first, &p[i].second);
}
sum = 1LL * n * (n - ) / ;
for (int i = m - ; i >= ; i--) {
ans[i] = sum;
int x = find(p[i].first), y = find(p[i].second);
if (x != y) {
par[y] = x;
sum -= s[x] * s[y];
s[x] += s[y];
}
}
for (int i = ; i < m; i++) printf("%lld\n", ans[i]);
return ;
}

AtCoder Beginner Contest 120 D - Decayed Bridges(并查集)的更多相关文章

  1. AtCoder Beginner Contest 247 F - Cards // dp + 并查集

    原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1 ...

  2. AtCoder Beginner Contest 120 题解

    题目链接:https://atcoder.jp/contests/abc120 A Favorite Sound 分析:答案为. 代码: #include <iostream> using ...

  3. AtCoder Beginner Contest 120 解题报告

    为啥最近都没有arc啊... A - Favorite Sound #include <algorithm> #include <iostream> #include < ...

  4. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  5. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  6. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  7. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  8. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  9. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

随机推荐

  1. 理解koa2 之 async + await + promise

    koa是下一代的Node.js web框架. 我们首先使用koa来实现一个简单的hello world吧!假如目前的项目结构如下: ### 目录结构如下: koa-demo1 # 工程名 | |--- ...

  2. WindowsFormsHost下MouseWheel失效的解决办法

    原文:WindowsFormsHost下MouseWheel失效的解决办法 看了网上有些写的用钩子,但是,在Stack Overflow上找到一个简便的方式

  3. CC2541之串口调试PM2.5传感器

    1. CC2541通过串口和PM25设备PMS7003通信,串口9600波特率,手机APP显示数据一直是128,先检查蓝牙数据通路问题,数据通路没问题 2. 看下串口是否OK,串口也不通,看到宏定义Z ...

  4. C#泛型创建实例

    class Test<T> where T : new() { public static T Instance() { return new T(); } } 就上面这方法, 居然比ne ...

  5. CSS3下的渐变文字效果实现

    如下,第一种方法已实践 一.方法一:借助mask-image属性 可以狠狠地点击这里:CSS3下的渐变文字效果方法一demo 如果您手头上的浏览器是Chrome或是Safari,则您可以在demo页面 ...

  6. Mysql绿色版安装和遇到的问题

    MySQL绿色版安装整套流程,http://www.cnblogs.com/LiuChunfu/p/6426918.html,按这个教程装完后,用cmd命令窗口也能登陆.但是用mysql-font登不 ...

  7. hibernate坑边闲话2

    threw exception [Request processing failed; nested exception is org.springframework.orm.hibernate5.H ...

  8. webpack之loader和plugin简介

    webpack之loader和plugin简介 webpack入门和实战(二):全面理解和运用loader和plugins webpack入门(四)——webpack loader 和plugin w ...

  9. 几个jdbc小技巧

    版本:jdk:1.6mysql-connector-5.0.8 1.如何用jdbc判断某个基本表是否存在 一种比较“笨”的方法:    try{         stmt.executeQuery( ...

  10. 分析一个react项目

    目录结构 下面是使用npx create-react-app web-app来创建的一个项目(已经删除了多余的文件) web-app ├── node_modules │   ├── ....... ...