牛客练习赛32 B题 Xor Path】的更多相关文章

链接:https://ac.nowcoder.com/acm/contest/272/B来源:牛客网 题目描述 给定一棵n个点的树,每个点有权值.定义表示  到  的最短路径上,所有点的点权异或和. 对于,求所有的异或和. 输入描述: 第一行一个整数n. 接下来n-1行,每行2个整数u,v,表示u,v之间有一条边. 第n+1行有n个整数,表示每个点的权值. 输出描述: 输出一个整数,表示所有 的异或和,其中 . 输入例子: 4 1 2 1 3 1 4 1 2 3 4 输出例子: 5 --> 示例…
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM 时空裂隙 SOLUTION 楠神口胡算法我来实现系列 从小到大枚举边权,对于当前的权值,在当前的图找出所有等于该权值的边,把这些边的顶点用其在并查集中的代表元(即fa[x])替换,然后建图,求所建图的桥边.求完之后把每条边的两个顶点合并(缩点),然后枚举下一…
链接:https://ac.nowcoder.com/acm/contest/634/B 来源:牛客网 给出n条线段,第i条线段的长度为ai, 每次可以从第i条线段的j位置跳到第i + 1条线段的j+1位置. 如果第i+1条线段长度不到j+,那么就会回到第i条线段的0位置,然后继续跳. 问从第i条线段的0位置跳到第n条线段需要跳多少次 为了减少输入量,a数组将由以下方式得到 unsigned int SA, SB, SC; int mod; unsigned int Rand(){ SA ^=…
链接:https://ac.nowcoder.com/acm/contest/358/D来源:牛客网 出题人的手环 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链. 可以发现,这条链一共有 n 种可能性.求这 n 种可能性…
链接:https://ac.nowcoder.com/acm/contest/1083/D来源:牛客网 有一个草原可以用一个1~400的数轴表示.有n头羊和q个查询.每头羊的编号分别是1,2,3…n.第i头羊只喜爱数轴上[ai,bi]这样的一个闭区间,每一时刻每头羊只可能在自己喜爱的区间的某个点上吃草.现在给出q个查询,每个查询两个整数l,r.你需要计算出在同一时刻,最多能有多少头羊同时在这个区间内吃草.数轴上每一个整点同一时刻只能容纳一只羊,羊只会在整点吃草. 第一行三个数n q. 第二行n个…
https://ac.nowcoder.com/acm/contest/1114/B 这题时间卡的比较死,多了一个快速幂的logn就过不了这题. #include<bits/stdc++.h> using namespace std; #define ll long long ; ; ll power[N]; int main() { int n; cin>>n; ll ans=; ;i<=N-;i++) { power[i]=i; } ;j<=n;j++) { int…
<题目链接> 题目描述 小a的国家里有n个城市,其中第i和第i - 1个城市之间有无向道路连接,特殊的,第1个城市仅与第2个城市相连为了减轻道路维护负担,城市规划局局长MXT给出了m个要求,他想让小a断开一些道路,使得任意1 ≤ i ≤ m ,城市xi不能到达城市yi同时最小化断开道路的数量. 输入描述: 第一行两个整数n, m,分别表示城市的数量和请求的数量接下来m行,每行两个整数x,y,表示需要使得x不能到达y 输出描述: 输出一个整数,表示最小断开桥的数量 输入 4 2 1 3 2 4…
<题目链接> 题目描述 小a有个烟花,每个烟花代表着互不相同的颜色,对于第个烟花,它有的概率点燃,现在小a要去点燃它们,他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 输入描述: 第一行两个整数接下来一行个数,第个数表示第个烟花被点燃的概率. 输出描述: 输出有两行,第一行表示产生不同颜色的期望个数,第二行表示产生恰好种颜色的概率,以换行符分割 输入 3 2 0.5 0.25 0.75 输出 1.5000 0.4062 说明 第二问样例解释: 相加得 备注: 对于 的数据: 对于 的…
https://ac.nowcoder.com/acm/contest/272/A v<=k时  答案就是k个1 否则贪心的从中间向两边添加1 #include<bits/stdc++.h> using namespace std; #define LL long long #define pii pair<int,int> #define inf 0x3f3f3f3f #define pb push_back #define mp make_pair ; ]; int ma…
题目链接  数列查找 考虑分块然后跑莫队, 设$c[i]$为$i$在当前维护的区间内出现的次数, $g[i]$为在当前维护的区间内有多少个数出现次数为$i$, $bg[i]$把出现次数分块,$bg[i]$的意义是第$i$个块代表的所有出现次数中出现的个数. $f[i][j]$对$1$到$n$分块,意义为当前在第$j$个数字块中有多少个数出现次数为$i$. 每一次询问的时候,我们先求出当前要求的出现次数是多少. 这个通过$bg[]$来求. 然后再根据$f[][]$确定当前区间中出现$k1$次的所有…