关闭

BZOJ4690 Never Wait for Weights

499人阅读 评论(0) 收藏 举报
分类:

第一反应是LCT什么鬼……我是不是没救了

然后看了一眼AC代码长度,瞬间发现自己是傻逼……

拿带权并查集维护就行了,每个点维护一下自己比自己的爹青多少,连边和路径压缩的时候更新一下即可

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<map>
#include<set>
#include<bitset>
#include<queue>
#include<stack>
using namespace std;
#define MAXN 100010
#define MAXM 1010
#define INF 1000000000
#define MOD 1000000007
#define eps 1e-8
#define ll long long
int n,m;
int f[MAXN],v[MAXN];;
int fa(int x){
	if(f[x]==x){
		return x;
	}
	int F=fa(f[x]);
	v[x]+=v[f[x]];
	f[x]=F;
	return f[x];
}
int main(){
	int i,x,y,z;
	char o[2];
	while(scanf("%d%d",&n,&m)){
		if(!n&&!m){
			break;
		}
		for(i=1;i<=n;i++){
			f[i]=i;
			v[i]=0;
		}
		while(m--){
			scanf("%s%d%d",o,&x,&y);
			if(o[0]=='!'){
				scanf("%d",&z);
				if(fa(x)!=fa(y)){
					int fx=f[x];
					f[fx]=f[y];
					v[fx]=v[y]+z-v[x];
				}
			}
			if(o[0]=='?'){
				if(fa(x)!=fa(y)){
					printf("UNKNOWN\n");
				}else{
					printf("%d\n",v[x]-v[y]);
				}
			}
		}
	}
	return 0;
}

/*
2 2
! 1 2 1
? 1 2
2 2
! 1 2 1
? 2 1
4 7
! 1 2 100
? 2 3
! 2 3 100
? 2 3
? 1 3
! 4 3 150
? 4 1
0 0 
*/


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

[bzoj4690]Never Wait for Weights

题目大意一堆未知数,之间有权值关系如x-y=z 每次给出关系或询问两个未知数的差权值并查集关系的维护显然用并查集。 每个节点维护如果父亲权值为0我的权值应该是多少即可。#include #incl...
  • WerKeyTom_FTD
  • WerKeyTom_FTD
  • 2016-11-09 21:56
  • 225

bzoj 4690: Never Wait for Weights (加权并查集)

4690: Never Wait for Weights Time Limit: 15 Sec  Memory Limit: 256 MB Submit: 302  Solved: 139 [Subm...
  • clover_hxy
  • clover_hxy
  • 2016-12-14 20:34
  • 207

[BZOJ]4690: Never Wait for Weights 带权并查集

Description 在实验室中,Nathan Wada作为助手的职责是测定两个样品的重量差异。当样品的差异很小时,使用天平能比使用 弹簧秤得到更精确的结果,所以他只使用天平来测得一些样品的...
  • baidu_36797646
  • baidu_36797646
  • 2017-04-17 09:40
  • 191

jsatck pid 中 各种情况解释

1,线程状态为“waiting for monitor entry”: 意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。 此时线程状态一般都是 Blocked: ...
  • dongyansheng_max
  • dongyansheng_max
  • 2014-04-17 11:40
  • 6223

ISE报错问题集锦(转载)

1、XST - "ERROR:Xst:902 - .v, line xx: Unexpected event in always block sensitivity list." 解决方法:Re...
  • hemmingway
  • hemmingway
  • 2014-08-14 21:49
  • 5891

关于ActiveMQ的学习

一、安装ActiveMQ 下载ActiveMQ 下载地址:http://activemq.apache.org/download.html 我用的是apache-activemq-5.9....
  • u010220047
  • u010220047
  • 2013-12-03 10:58
  • 1847

[BZOJ]4690: Never Wait for Weights 带权并查集

Description 在实验室中,Nathan Wada作为助手的职责是测定两个样品的重量差异。当样品的差异很小时,使用天平能比使用 弹簧秤得到更精确的结果,所以他只使用天平来测得一些样品的...
  • baidu_36797646
  • baidu_36797646
  • 2017-04-17 09:40
  • 191

uestc oj 1832 Never Wait for Weights

Never Wait for Weights    这一个题目用并查集+边权来解决, 其间自然用到了路径压缩。 (起初并没有用边权来做,然后在合并子集更新的时候发现超时了) 首先初始化节...
  • wuxinliulei
  • wuxinliulei
  • 2013-06-08 01:52
  • 961

UVALive 6187_Never Wait for Weights(带权并查集)

题目: 题型:数据结构
  • u010770930
  • u010770930
  • 2014-05-04 13:22
  • 548

神经网络压缩(3):Learning both Weights and Connections for Efficient Neural Network

这是2015年斯坦福和英伟达的一篇论文。 转载自:http://blog.csdn.net/meanme/article/details/48713327 之前介绍的两篇关于神经网络压缩的文章都是以这...
  • cookie_234
  • cookie_234
  • 2017-05-02 19:29
  • 352
    个人资料
    • 访问:217762次
    • 积分:6179
    • 等级:
    • 排名:第4656名
    • 原创:402篇
    • 转载:0篇
    • 译文:1篇
    • 评论:126条
    最新评论