[Luogu] P3907 圈的异或】的更多相关文章

题目描述 给出无向图G,边 (Ai,Bi)的权是Ci,判断下列性质是否成立: 对于任意圈C,其边权的异或和是0 输入输出格式 输入格式: 第1 行,1 个整数T,表示数据的组数. 每组数据第1 行,2 个整数 N,M,表示图G 点和边的数量. M 行,每行3 个整数 Ai,Bi,Ci, 输出格式: 对每个数据输出一行,“Yes” 或者“No” 输入输出样例 输入样例#1: 2 3 31 2 12 3 23 1 31 11 1 1 输出样例#1: YesNo 说明 • 对于50% 的数据, N,M…
P3907 圈的异或 无向图$dfs$找环,并判断边权异或和是否为0 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define N 100000 using namespace std; int head[N],tot; struct node{ int to,next,w; }e[N]; bool vis[N],bvis[N]; int t,n,m;…
传送门 解题思路 其实就是找出所有的环判断,因为数据范围很小直接暴力做,注意要判断自环. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int MAXN = 55; int n,m,head[MAXN],cnt,T,tot; int to[MAXN<…
题目链接 \(Click\) \(Here\) \(01Trie\)好题裸题. 取节点\(1\)为根节点,向下扫每一个点从根节点到它路径上的异或和,我们可以得到一个\(sumx[u]\). 现在路径异或和有两类: 跨过根节点,这种的异或路径长度等于两个子节点的\(sumx\)异或和异或起来的数值大小 在一棵子树中,这种的异或路径等于\(sumx[u]\)异或上\(sumx[v]\)再异或掉两次\(sumx[1->lca (u, v)]\)(因为被额外计算),依然等于两个子节点的\(sumx\)异…
其实......这就是个SB题,本来看到这个题,和树上路径有关 于是--我就欣喜地打了一个树剖上去,结果嘞,异或两遍等于没异或 所以这题和LCA屁关系都没有,所以这题就是个树上DFS!!!! 所以它为啥是绿的?不知道.....某谷地评分就是不能信 于是就A了呗 #include <iostream> #include <cstdlib> #include <cstdio> const int N=1e5+5; struct edge{ int to,next,data;…
做一个树上前缀异或和,然后把前缀和插到$01trie$里,然后再对每一个前缀异或和整个查一遍,在树上从高位向低位贪心,按位优先选择不同的,就能贪出最大的答案. #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<cctype> #include<cstdlib> #include…
P4551 最长异或路径 题目描述 给定一棵\(n\)个点的带权树,结点下标从\(1\)开始到\(N\).寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或. 输入输出格式 输入格式: 第一行一个整数\(N\),表示点数. 接下来 \(n-1\) 行,给出 \(u,v,w\) ,分别表示树上的 \(u\) 点和 \(v\) 点有连边,边的权值是 \(w\). 输出格式: 一行,一个整数表示答案. 输入输出样例 输入样例#1: 复制 4 1 2 3 2…
关于\(Trie\)树的详细介绍,还请移步这篇深度好文 基本操作 插入 void insert() { int p=0; int len=strlen(tmp+1); for(int i=1;i<=len;i++) { int qwq=tmp[i]-'0'; if(!trie[p][qwq]) trie[p][qwq]=++tot; p=trie[p][qwq]; } } 注意,其中\(tot=0\),我习惯\(p\)初始值也为\(0\).\(tot\)与\(p\)初值应保持一致. 检索操作非常…
1.luogu P4315 月下"毛景树" 题目链接 前言: 这大概是本蒟蒻A掉的题里面码量最大的一道题了.我自认为码风比较紧凑,但还是写了175行. 从下午2点多调到晚上8点.中间小错不断.最后还是借助了郭神的AC代码.. %%%stO郭神Orz%%% 还是我代码能力不够.以后要多写一些这样的题练练手. 解析: 题目相当裸.树链剖分+线段树维护区间最大值. 需要注意的点大致如下: 1.边权化点权 2.线段树需要实现的功能:区间加,区间赋值,区间查询最大值. 看起来貌似有手就行其实对于…
https://www.luogu.org/problemnew/show/P2420 异或满足 A ^ B = B ^ A A ^ A = 0 0 ^ A = A #include <cstdio> #include <iostream> using namespace std; ; #define yxy getchar() #define RR freopen("gg.in", "r", stdin) , head[N], A[N];…