题目


分析

考虑这些关系可以用若干个连通块表示,而可以用一个数异或边权表示,

那么每个连通块有一个生成树,而判断非树边是否合法即可,

那么问题就转换成有多少个数异或任意一个元素均不大于\(k\),

把每个点到选定的根的异或值算出来,放进Trie里判断即可


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
#define rr register
using namespace std;
const int N=500011; struct node{int y,w,next;}e[N<<1];
int trie[N*30][2],n,m,k,as[N],tot,ans=1,flag,a[N],v[N];
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void BackTrace(){for (;tot;--tot) trie[tot][0]=trie[tot][1]=0; tot=1;}
inline void Insert(int x){
rr int p=1;
for (rr int i=29;~i;--i){
rr int z=(x>>i)&1;
if (!trie[p][z]) trie[p][z]=++tot;
p=trie[p][z];
}
}
inline signed dfs2(int p,int i,int now){
rr int t=trie[p][!trie[p][0]];
if (trie[p][0]&&trie[p][1])
return dfs2(trie[p][0],i-1,now|(1<<i))+dfs2(trie[p][1],i-1,now|(1<<i));
else if (t) return ((now|(1<<i))>k)?dfs2(t,i-1,now):(dfs2(t,i-1,now|(1<<i))+(1<<i));
else return now<=k;
}
inline void dfs1(int x){
v[x]=1,Insert(a[x]);
for (rr int i=as[x];i;i=e[i].next){
if (flag) return;
if (v[e[i].y]){
if ((a[x]^e[i].w)!=a[e[i].y])
{flag=1; return;}
}else a[e[i].y]=a[x]^e[i].w,dfs1(e[i].y);
}
}
signed main(){
n=iut(),m=iut(),k=iut();
for (rr int i=1;i<=m;++i){
rr int x=iut(),y=iut(),w=iut();
e[i<<1]=(node){y,w,as[x]},as[x]=i<<1;
e[i<<1|1]=(node){x,w,as[y]},as[y]=i<<1|1;
}
for (rr int i=1;i<=n;++i)
if (!v[i]){
BackTrace(),flag=0,dfs1(i);
if (flag) return !printf("0");
ans=1ll*ans*dfs2(1,29,0)%1000000007;
}
return !printf("%d",ans);
}

#Trie#洛谷 7717 「EZEC-10」序列的更多相关文章

  1. 洛谷比赛 「EZEC」 Round 4

    洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...

  2. [洛谷P3701]「伪模板」主席树

    题目大意:太暴力了,就不写了,看这儿 题解:对于每个$byx$的人,从源点向人连边,容量为此人的寿命. 对于每个手气君的人,从人向汇点连边,容量为此人的寿命. 对于每个$byx$的人与手气君的人,如果 ...

  3. LOJ 3119: 洛谷 P5400: 「CTS2019 | CTSC2019」随机立方体

    题目传送门:LOJ #3119. 题意简述: 题目说的很清楚了. 题解: 记恰好有 \(i\) 个极大的数的方案数为 \(\mathrm{cnt}[i]\),则答案为 \(\displaystyle\ ...

  4. LOJ 3120: 洛谷 P5401: 「CTS2019 | CTSC2019」珍珠

    题目传送门:LOJ #3120. 题意简述: 称一个长度为 \(n\),元素取值为 \([1,D]\) 的整数序列是合法的,当且仅当其中能够选出至少 \(m\) 对相同元素(不能重复选出元素). 问合 ...

  5. 洛谷 P4710 「物理」平抛运动

    洛谷 P4710 「物理」平抛运动 洛谷传送门 题目描述 小 F 回到班上,面对自己 28 / 110 的物理,感觉非常凉凉.他准备从最基础的力学学起. 如图,一个可以视为质点的小球在点 A(x_0, ...

  6. 题解-洛谷P6788 「EZEC-3」四月樱花

    题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...

  7. LOJ 2743(洛谷 4365) 「九省联考 2018」秘密袭击——整体DP+插值思想

    题目:https://loj.ac/problem/2473 https://www.luogu.org/problemnew/show/P4365 参考:https://blog.csdn.net/ ...

  8. 洛谷 P7879 -「SWTR-07」How to AK NOI?(后缀自动机+线段树维护矩乘)

    洛谷题面传送门 orz 一发出题人(话说我 AC 这道题的时候,出题人好像就坐在我的右侧呢/cy/cy) 考虑一个很 naive 的 DP,\(dp_i\) 表示 \([l,i]\) 之间的字符串是否 ...

  9. 洛谷 P7360 -「JZOI-1」红包(Min-Max 容斥+推式子)

    洛谷题面传送门 hot tea. 首先注意到这个 \(\text{lcm}\) 特别棘手,并且这里的 \(k\) 大得离谱,我们也没办法直接枚举每个质因子的贡献来计算答案.不过考虑到如果我们把这里的 ...

  10. 洛谷 P7718 -「EZEC-10」Equalization(差分转化+状压 dp)

    洛谷题面传送门 一道挺有意思的题,现场切掉还是挺有成就感的. 首先看到区间操作我们可以想到差分转换,将区间操作转化为差分序列上的一个或两个单点操作,具体来说我们设 \(b_i=a_{i+1}-a_i\ ...

随机推荐

  1. kubernetes(k8s)大白学习01-kubernetes是什么?有什么用?

    kubernetes(k8s)大白基础学习-kubernetes是什么? 一.认识 Docker Docker 是什么 先来看看 Docker 的图标: 一条鲸鱼背上驮着四方形块的物品,就像一条海运船 ...

  2. uber-go guide,uber的go编码规范

    uber-go guide,uber的go语言编码规范 感谢翻译者和原作们 本文转自:https://github.com/xxjwxc/uber_go_guide_cn (特此感谢作者的翻译,感谢他 ...

  3. Jenkins流水线使用@Grab 导入Maven库

    有个需求需要在pipeline中调用Java的SDK去执行业务 使用 @Grab 注解可以在Maven中导入Java 库, @Grab('org.apache.commons:commons-math ...

  4. java字节、位移以及进制转换

    数据存储方式 众所周知,java中的数据都是以二进制的形式存储在计算机中的,但是我们看到的数据怎么是10进制的,因为java提供了很多进制自动转换的方式. 位移 向左位移是*2的幂次,一般都是正数操作 ...

  5. RocketMQ(10) 消息类型

    一.普通消息 1. 消息发送方式分类 Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果. 同步发送消息: 同步发送消息是指,Producer发出⼀条消息后,会在收到MQ返 ...

  6. docker部署监控Prometheus+Grafana

    目录 一.Prometheus简介 二.Prometheus基本原理 三.Prometheus架构图 四.Prometheus特性 五.Prometheus组件 六.Prometheus服务发现 七. ...

  7. [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化

    [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化 问题 Col标签不对齐 首先直接放解决办法 在 vsCode se ...

  8. [好文推荐] 如何保护价值上千万的Node.js源代码? - 主要是ncc

    如何保护价值上千万的Node.js源代码? https://zhuanlan.zhihu.com/p/84386456 一个强大的JS混淆器. github.com/javascript-obfusc ...

  9. 【预训练语言模型】BERT原理解析、常见问题和微调实战

    一.BERT原理 1.概述        背景:通过在大规模语料上预训练语言模型,可以显著提高其在NLP下游任务的表现.        动机:限制模型潜力的主要原因在于现有模型使用的都是单向的语言模型 ...

  10. 教你一招,解决Github图片不显示问题(2021.1.20测试可用)

    本文提供的是windows系统解决方法,linux系统和mac系统可以参考原理,修改DNS的ip地址为阿里云或者是修改hosts文件 问题 可能有些朋友和我遇到同样的问题,逛Github的时候会发现, ...