牛客练习赛68 牛牛的无向图 题解(krusal思想)
题目链接
题目大意
要你查询q 次询问,每次询问给出一个 L ,询问\(\sum_{i=1}^n\sum_{j=i+1}^n[d(i,j)<=L]\)。其中 [C] 表示当命题 C 为真的时候为 1 否则为 0。
定义 d(u,v) 表示在无向图中点 u 能到达点 v 的所有路径中权值最小的路径的权值。
求所有答案的异或和
题目思路
这个题目类型应该是一个常见的套路题,然而我又双叒叕没做出来
这个求边的最大最小值的题目就要想到kursal的思想就行了。
实际上就是把所有小于L的所有边都加进去 询问互相可达点对,可以用并查集维护。
那么多组询问就可以都离线下来,把询问和边放在一起排序然后处理就好了。
代码
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e6+5,inf=0x3f3f3f3f,mod=199999;
const double eps=1e-10;
unsigned int SA, SB, SC;
int n, m, q, LIM;
int fa[maxn],sum[maxn],cnt;
struct node{
int u,v,w,opt;
}e[maxn];
unsigned int rng61(){
SA ^= SA << 16;
SA ^= SA >> 5;
SA ^= SA << 1;
unsigned int t = SA;
SA = SB;
SB = SC;
SC ^= t ^ SA;
return SC;
}
void init(){
for(int i=1;i<=n;i++){
fa[i]=i;
sum[i]=1;
}
}
void gen(){
scanf("%d%d%d%u%u%u%d", &n, &m, &q, &SA, &SB, &SC, &LIM);
init();
for(int i = 1,u,v,w; i <= m; i++){
u = rng61() % n + 1;
v = rng61() % n + 1;
w = rng61() % LIM;
e[++cnt]={u,v,w,1};
}
for(int i = 1,w; i <= q; i++){
w = rng61() % LIM;
e[++cnt]={-1,-1,w,2};
}
}
bool cmp(node a,node b){
if(a.w!=b.w){
return a.w<b.w;
}else{
return a.opt<b.opt;
}
}
int findd(int x){
return x==fa[x]?x:fa[x]=findd(fa[x]);
}
signed main(){
gen();
sort(e+1,e+1+cnt,cmp);
ll temp=0,ans=0;
for(int i=1;i<=cnt;i++){
if(e[i].opt==1){
int x=findd(e[i].u),y=findd(e[i].v);
if(x==y) continue;
temp+=1ll*sum[x]*sum[y];
sum[y]+=sum[x];
fa[x]=y;
}else{
ans=ans^temp;
}
}
printf("%lld\n",ans);
return 0;
}
牛客练习赛68 牛牛的无向图 题解(krusal思想)的更多相关文章
- 牛客练习赛63 牛牛的树行棋 差分 树上博弈 sg函数
LINK:牛牛的树行棋 本来是不打算写题解的. 不过具体思考 还是有一段时间的. 看完题 一直想转换到阶梯NIM的模型上 转换失败. 考虑SG函数. 容易发现 SG函数\(sg_x=max{sg_{t ...
- 牛客练习赛63 牛牛的斐波那契字符串 矩阵乘法 KMP
LINK:牛牛的斐波那契字符串 虽然sb的事实没有改变 但是 也不会改变. 赛时 看了E和F题 都不咋会写 所以弃疗了. 中午又看了一遍F 发现很水 差分了一下就过了. 这是下午和古队长讨论+看题解的 ...
- 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...
- 牛客练习赛26:D-xor序列(线性基)
链接:牛客练习赛26:D-xor序列(线性基) 题意:小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 题解:线性基 #inc ...
- 牛客练习赛11 假的字符串 (Trie树+拓扑找环)
牛客练习赛11 假的字符串 (Trie树+拓扑找环) 链接:https://ac.nowcoder.com/acm/problem/15049 来源:牛客网 给定n个字符串,互不相等,你可以任意指定字 ...
- 牛客练习赛64 D【容斥+背包】
牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...
- 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B
牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...
- 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A
牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...
- 最小生成树--牛客练习赛43-C
牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...
随机推荐
- 大二逃课总结的1.2w字的计算机网络知识!扫盲!
本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的<计算机网络>这本书. 为了内容更容易理解,我对之前的整理进行了一波重构,并配上了一些相关的示意图便于理解. @ 目录 ...
- window.open浏览器弹出新窗口被拦截—原因分析和解决方案
最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,在本机实验没问题,到了服务器就被拦截了,火狐有拦截提示,360浏览器拦截提示都没有,虽然在自己的环境可以对页面进行放行,但是对用户 ...
- Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)
前一节演示在docker中安装mssql,地址:Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7) 本节演示 .Net Core项目容 ...
- 走在深夜的小码农 Sixth Day
Css3 Six Day writer:late at night codepeasant 学习大纲: 一.其他样式 1.圆角边框 在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了. ...
- 一个Task.Factory.StartNew的错误用法
同事写了这样一段代码: FactoryStartNew类: using System; using System.Collections.Generic; using System.Linq; usi ...
- Servlet程序访问jsp文件404的一种情况
启动Jsp Run on Server的时候出现404的错误,如下图: 检查一下是否文档目录如下图:jsp应该在WebContent下,而不是WEB_INF下,访问放在WEB_INF下的jsp文件就会 ...
- deepin 20 镜像源
deepin 20 镜像源 ## Generated by deepin-installerdeb [by-hash=force] https://community-packages.deepin. ...
- ASP.NET Core 中基于工厂的中间件激活
IMiddlewareFactory/IMiddleware 是中间件激活的扩展点. UseMiddleware 扩展方法检查中间件的已注册类型是否实现 IMiddleware. 如果是,则使用在容器 ...
- C语言I博课作业04
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11489 我在这个作业课程 ...
- tp3.2展示列表
public function get_list($where=array(),$field="",$order = "id desc"){ $field = ...