考慮這樣一種暴力:將所有<=x的邊按照類似最小生成樹的方式加入答案,然後用下面的方法統計答案:

1.首先加入一條邊

2.看這條邊是否將會合成聯通塊,如果會,那麼加進這條邊,記這條邊一端聯通塊大小為x,另一端為y,則對答案貢獻為(x+y)2−x2−y2(x+y)^2-x^2-y^2(x+y)2−x2−y2

但是這樣太慢,需要優化

不過我們發現:題目沒有要求在線,於是我們可以離線,將詢問按照x值從小到大排序,插進邊裡,這樣我們可以利用以前做過的結果不用重新再做一遍,減少了冗餘運算

#include<bits/stdc++.h>
using namespace std;
struct no{
	int a,b,c,t,d;
	bool operator <(const no &rhs)const{
		return c<rhs.c||c==rhs.c&&t<rhs.t;
	}
}e[500010];
int f[500010],ans,s[500010],n,m,q,ct,r[500010];
int fd(int x){return f[x]==x?x:f[x]=fd(f[x]);}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%d%d%d",&n,&m,&q);
		memset(e,0,sizeof(e));
		for(int i=1;i<=n;i++){
			f[i]=i;
			s[i]=1;
		}
		ct=0;ans=0;
		while(m--){
			ct++;
			scanf("%d%d%d",&e[ct].a,&e[ct].b,&e[ct].c);
			e[ct].t=0;
		}
		for(int i=1;i<=q;i++){
			ct++;
			scanf("%d",&e[ct].c);
			e[ct].t=1;
			e[ct].d=i;
		}
		int p=1,w=0;
		sort(e+1,e+ct+1);
		while(w!=q){
			while(p<=ct&&!e[p].t){
				int xx=fd(e[p].a),yy=fd(e[p].b);
				p++;
				if(xx!=yy){
					f[xx]=yy;
					ans-=s[yy]*s[yy];
					ans-=s[xx]*s[xx];
					s[yy]+=s[xx];
					ans+=s[yy]*s[yy];
				}
			}
			w++;
			r[e[p].d]=ans;
			p++;
		}
		for(int i=1;i<=q;i++)
			printf("%d\n",r[i]);
	}
}

jzoj4223的更多相关文章

随机推荐

  1. 比较完整的HIS系统解释(转载记录)

    HIS系统即医院信息系统(全称为Hospital Information System).在国际学术界,它已被公认为是新兴的医学信息学的重要分支.HIS系统的有效运行,将提高医院各项工作的效率和质量, ...

  2. 别人的Linux私房菜(2)Linux简介

    同一操作系统无法在不同硬件平台上运行.架构. Bell实验室和麻省理工学院MIT和通用电气公司GE发起了Multics计划,分时兼容系统,300以上多终端连接主机. Unics 由Multics中的人 ...

  3. ARM cortexM4中断优先级的一点理解。

    根据手册PM0214 40页.213页.200.195.interrupt priority grouping. 根据手册EM0090 第371页. stm32f42xxx除掉fpu部分,有91个可屏 ...

  4. bundler简介(ruby gem)

    簡介 Bundler   RubyGem 是包裝.散佈Ruby程式庫的標準方式,相關文件可以參考 RubyGems Guides 的說明,或是 簡介 plugins 中的第二個例子.在使用rails ...

  5. BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MBSubmit: 4493  Solved: 2695[Submit][Statu ...

  6. poj 1328 Radar Installation(贪心+快排)

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  7. WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析

    WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析 FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后 ...

  8. 适配android和iOS上position:absolute和input问题

    //适配android上absolute和input的问题var oHeight = $(document).height(); //屏幕当前的高度$(window).resize(function( ...

  9. 如何更改linux文件的拥有者及用户组(chown和chgrp)

    http://blog.csdn.net/hudashi/article/details/7797393 一.基本知识   在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用 ...

  10. noip第1课资料