自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 自己的板子

dfn为该点的dfs序,low为这个点能够回到的最小的dfs序,如果一个点能够从它的非父亲节点回到dfs序更小的点,则该点不为割点,桥同理。如果边(u,v)代表从u到v有一条边,则如果v的low大于u的dfs序,则该边为桥。如果求第k短路将dijkstra中的flag == 2该为flag == k。它是解决RMQ问题(区间最值问题)的一种强有力的工具。有向边,所以需要建一个反向的图求终点距离。这个写法每个点只能到一次,多次见下方。:给出abd,求有多少对xy满足,:容斥配莫比乌斯函数优化一下。

2023-05-20 13:01:50 717

原创 Codeforces Round #832 (Div. 2)

对于第三点,我们开两个vector,一个记录对于奇数下标的异或值的下标,一个记录对于偶数的,那么我们只需要在相异的vector里找到左端点的异或值是否重新出现在右端点之前,能找到说明可以变相把长度变成奇数。首先可以确定的是,不考虑奇偶,要是可以变成全0,那么一定只需要一次或者不行,所以只需要直接看区间异或前缀和是不是0,现在考虑偶数区间长度,并且区间异或和是0。③这个区间有一段前缀奇数区间可以异或出来0,这样就可以变相把区间长度变成奇数,需要2次。②这个区间全是0,说明0次。④剩下就是-1的情况。

2022-11-07 15:16:34 437 1

原创 Cycle HDU - 5215 (奇偶环判定)(代码有错)

对于奇环,很好判断的是,如果没法进行二分图染色,那么一定存在,问题是对于偶数环,我们可以考虑,奇数环的边数是奇数,假如两个奇数环,那么他们的边数总和就是偶数,现在假如两个奇数环相交那么他们重合的边数*2,再在偶数的基础上减去一个偶数,那么一定是一个偶数,所以只要有环相交就一定存在一个偶环,奉上不知道为什么错的代码。希望有佬帮忙看看为什么错。给出无向图,判断是否存在奇环和偶环。

2022-11-07 11:26:02 205

原创 Educational Codeforces Round 77 (Rated for Div. 2) A~E

肯定是从n开始往前考虑,因为比-1小的都可以赢,然后最多贿赂log个人,因为每次少一半,然后从后往前考虑,因为这样可以保证我贿赂到的人一定是可以赢后面的人,每到2的幂次方我们就贿赂最小花费的人。的陷阱,总共t秒的时间,现在每个士兵有自己的等级,士兵等级大于等于陷阱威胁就不会被杀死,现在你要带领最多的士兵走到n+1,你可以自己走到陷阱的终点去解除陷阱,走一步的代价是1。:给出n个人,保证n是二的幂次方,会进行很多轮比赛,每轮比赛两两配对,编号大的赢,但是可以贿赂编号大的,让他输掉,输出最小花费。...

2022-08-28 15:05:01 178

原创 Educational Codeforces Round 134 (Rated for Div. 2) A~D

也就代表a和b的01状态要相反,所以把b取反从高位枚举ans这一位置的情况,看a和b&上ans的情况是不是一样,一样说明这一位可以置1。要求构造数组dmin和dmax,代表d数组每个元素的上下界,要求求出来b排序之后是给定的数组,a和b都是不递减的非负数组。对于最大值,首先可以发现,一个数字不能构造比自己小的数组,所以我们对于一段区间要找到它能容纳的最大。:我们对于二进制位拆位,因为。:给出数组a和b,满足条件。:对于最小值直接找到比。...

2022-08-28 14:40:09 135

原创 Educational Codeforces Round 75 (Rated for Div. 2) A~E2

感觉是个有点经典的贪心,首先对于需要人数相同的,一定是先买钱少的,对于需要人数多的,我们可以假设在他之前的所有人已经获得再来获得他,所以对于这种人数,优先买钱少的直到足够多,我们把所有需要购买的放进一个set,每次取小的出来买就行。给出每个人的m和p,意思是,你可以花费p购买他,或者等你获得了m个人后自动获取他,问获得全部人最小的花费。的数字,你可以交换相邻的数,但是他们的奇偶性要不同,求能换出来的最小的数字,保留前缀0。给出总共的钱数,和人数,每个人的工资在。二分答案,贪心的求就行。...

2022-07-24 21:05:05 201

原创 Educational Codeforces Round 74 A~F

链接题意:给出两个数,问x可不可以通过减去质数得到y思路:唯一分解定理B. Kill 'Em All(贪心)链接题意:一个水平的坐标轴,怪兽都在原点右边,若使得怪物到达原点右边,则怪兽死亡。可以开炮①如果怪物在炮弹上,怪物死亡②怪物在炮弹左边,怪物左移给定的r个单位③怪物在炮弹右边,怪物右移给定的r个单位当怪物在原点左边(包括原点)也算死亡思路:贪心的去看,我们发现怪物在右边是无效操作,所以我们从最远的怪物开始打,一直往前打到怪物全死就行C. Standard Free2play(dp

2022-06-29 00:55:02 130

原创 Educational Codeforces Round 17 ACD

1

2022-06-23 22:11:58 147

原创 CodeCraft-22 and Codeforces Round #795 (Div. 2) E. Number of Groups(贪心,区间问题)

链接题意:给出一些区间,并且给出颜色,如果两个区间颜色不同并且有交集,则添加一条边,最后求有多少个连通分量。思路:首先暴力贪心很容易想,对于每个区间,我们可以把他按照左端点排序,左端点代表进入区间,右端点代表删除区间,然后把他加入对应颜色的set,当set里面有交点就进行一次并查集维护连通块,但是这样做复杂度仍会下降到O(n2)O(n^2)O(n2),我们可以发现,因为我们是按左端点排序,所以每次联通了区间只后,实际上只需要保留右端点最大的那个区间就行了,因为我们统计的只是连通块,不是具体的形态,而最大

2022-06-02 09:12:43 419

原创 Codeforces Round #721 (Div. 2) B2. Palindrome Game (hard version)(博弈)

Codeforces Round #721 (Div. 2) B2. Palindrome Game (hard version)(博弈)链接题意:给出01字符串,每个人可以把0变成1,花费1代价,或者翻转字符串,不花费代价,翻转的前提是,不能是回文串,上一个人没有翻转过,如果到全是1的时候,花费最小的人赢思路:对于回文串的情况,我们可以发现,如果0的个数是1,或者是偶数,那就是后手赢,(对于1,一定是后手,对于偶数,后手只需要和先手保持一致,到最后2个的时候翻转一下就行了),不然就是先手赢。对于非回

2022-05-31 11:08:42 178

原创 Codeforces Round #721 (Div. 2) D. MEX Tree(树)

Codeforces Round #721 (Div. 2) D. MEX Tree(树)链接题意:给出一颗树定义一条路径的权值是路径上所有点编号的 mex⁡\operatorname{mex}mex。对于每个0≤i≤n0\le i\le n0≤i≤n 求出 mex⁡\operatorname{mex}mex 为iii的路径有几条。注意,这里统计的路径需要包括至少一条边。思路:对于mex是x的时候,也就是,0∼x−10 \sim x-10∼x−1在同一条路径上,我们就可以有个大概的思路,枚举mex,然

2022-05-30 20:51:20 128

原创 Codeforces Round #722 (Div. 1) D. It‘s a bird No, it‘s a plane No, it‘s AaParsa(最短路)

Codeforces Round #722 (Div. 1) D. It’s a bird! No, it’s a plane! No, it’s AaParsa!(最短路)链接题意:给一个带权有向图,但是每经过1s1s1s这条路的终点就会变成(v+s)%n(v+s)\%n(v+s)%n,v是原来的终点,s是经过的时间,时间是权值,我们可以在任意节点等待任意时间。思路:我们可以想到的是,如果等待1s1s1s,那么就相当于多了一条v→v+1v\to v+1v→v+1的边,所以到达每个点的时候我们用这条边

2022-05-28 12:49:04 105

原创 Codeforces Round #722 (Div. 1) C. Trees of Tranquillity(dfs序,二分)

Codeforces Round #722 (Div. 1) C. Trees of Tranquillity(dfs序,二分)链接题意:给你两棵nnn个节点的树,要你找一个最大的点集SSS,使得对于任意 u,v∈Su,v\in Su,v∈S,都满足 u,vu,vu,v在第一棵树上一个是另一个的祖先并且在第二棵树上互相都没有祖先关系,输出SSS的大小。思路:首先答案对于第一个树,一定是在一颗树上,而在第二个树上都不在同一条链上,换句话说,他们不存在哪个节点在另一个节点的子树中,我们利用dfs序,记录点

2022-05-28 00:24:42 103

原创 Codeforces Round #733 (Div. 1 + Div. 2) E. Minimax(构造)

Codeforces Round #733 (Div. 1 + Div. 2) E. Minimax(构造)链接题意:给出字符串,字符串的字串是从1→i1 \to i1→i,字符串的代价是所有字串最大的前缀和后缀相同的长度的最大,现在要重新排列这个字符串,让他的代价最小,并且字典序最小思路:一堆情况,分类讨论只有一个字母,就之间输出两个字母,就xyxx…xy…y这样构造两个以上的字母,如果字典序最小的字母没有超过一半,就先输出两个字典序最小的,然后跟剩下的配对,直到配对完了顺序输出剩下的同两

2022-05-27 21:27:36 84

原创 Good Bye 2020 F. Euclid‘s nightmare(并查集,思维)

Good Bye 2020 F. Euclid’s nightmare(并查集,思维)链接题意:给出n个01字符串,每个字符串有至多两个至少一个位置有1,输入每个字符串哪些地方有1,输出你可以通过异或至多得到多少种不同的字符串,并且输出字典序最小的方案思路:我们可以首先把所有地方看作一个连通块,每次有两个1就相当于合并一次集合,因为对于2个1的异或来说,如果有重合,就相当于这两个可以组合,就看做一次合并,之间可以相互选择走通,那么对于1个1的情况,我们只需要想办法把他弄成2个1就行,我们只需要开一个额

2022-05-27 16:37:12 74

原创 洛谷 P2756 飞行员配对方案问题(二分图最大匹配)网络流24题(4)

洛谷 P2756 飞行员配对方案问题(二分图最大匹配)网络流24题(4)链接题意:给一个二分图,输出最大匹配的方案思路:求个最大流记录一下路径然后遍历左边的祖先#include<bits/stdc++.h>using namespace std;const int N = 1e3+10, INF = 0x3f3f3f3f;int head[N], idx = 1;struct Edge{int to, nxt, d;}e[1000010];void add(int u, int

2022-05-25 22:09:37 124

原创 洛谷 P1251 餐巾计划问题 (费用流)网络流24题(3)

洛谷 P1251 餐巾计划问题 (费用流)网络流24题(3)链接题意:有一个餐厅,每天需要一定数量的餐巾x[i]x[i]x[i],每天可以购买餐巾,花费ppp,或者送清洗店,花费day1day_1day1​,cost1cost_1cost1​或者day2day_2day2​,cost2cost_2cost2​,除了xxx,对于每一天其他变量都是一样的思路:我们考虑把每一天拆点,分成早上和晚上,记早上是iii,晚上是i′i'i′1.对于每一天,我们可以购买,所以直接连接s→i(INF,p)s\to i

2022-05-25 10:06:13 95

原创 Educational Codeforces Round 129 (Rated for Div. 2) F. Unique Occurrences

Educational Codeforces Round 129 (Rated for Div. 2) F. Unique Occurrences链接题意:给出一颗树,每两个点之间的价值是两个点之间权值的个数,记为f(v,u)f(v,u)f(v,u),规定v<uv<uv<u,求∑f(v,u)\sum f(v,u)∑f(v,u)思路:可以看出,对于每条边,他的贡献就是把它去掉之后左右两个联通块大小的乘积,现在我们就要想办法把这种联通块的大小统计出来,对于每条边,我们记录他的权值,上次出

2022-05-24 22:47:29 174

原创 Codeforces Round #792 (Div. 1 + Div. 2) F. Diverse Segments(双指针,二分,树状数组)

Codeforces Round #792 (Div. 1 + Div. 2) F. Diverse Segments(双指针,二分,树状数组)链接题意:给出数组a,现在可以选择一个区间,做任意修改,然后现在有q次询问,你的任务是,修改完区间后,让每次询问里面都没有相同的数字,输出最小区间长度思路:首先对于最大区间,修改[1,n][1,n][1,n]一定可以满足,现在我的任务就变成了缩减区间,我们首先处理出最大需要修改到哪里,用树状数组维护在iii之前所有的区间LLL的最大RRR,然后处理出没有相同数

2022-05-21 19:39:45 208 2

原创 Codeforces Round #792 (Div. 1 + Div. 2) E. MEX vs DIFF(贪心?)

Codeforces Round #792 (Div. 1 + Div. 2) E. MEX vs DIFF(贪心?)链接题意:给出数组,可以改变k次,每次把一个数字改变成另一个,diff的定义是数组里面出现的不同的数字个个数,现在要操作最多k次让diff−mexdiff-mexdiff−mex最小思路:我们可以先确定最大的mex,我们确定了一个mex,那这个mex以内的diff等于mex,此时的贡献是0,那我们就只需要让后面的diff尽可能的减小,所有我们就要用出现次数小的补前面的空白,大概就算这样

2022-05-20 17:54:41 277

原创 洛谷P2764 最小路径覆盖问题(最小割) 网络流24题(2)

洛谷P2764 最小路径覆盖问题(最小割)链接题意:给一张有向无环图,要用最少的路径覆盖所有的边,输出多少条路径并且输出具体路径思路:我们可以根据最小割最大流定理理解成,割掉最小流量,让整个图不连通吗,所以就变成了一个几乎是模板题的最小割,其中记录一下路径即可,我们在每次更新流量的时候记录一下。#include<bits/stdc++.h>using namespace std;#define int long longconst int N = 1500, INF = 21474

2022-05-18 17:50:35 125

原创 Educational Codeforces Round 118 E. Crazy Robot(topo)

Educational Codeforces Round 118 E. Crazy Robot(topo)链接题意:给出一个矩阵,有个实验室,是终点,有墙壁和可以走的路。现在你有一个疯狂的机器人,它除了听你的命令和打碎墙壁什么都会左,比如你让他向左走那他就会往除了左边的其他地方走,现在问对于每个位置,机器人能不能到达实验室。思路:我们可以发现这其实类似一个topo的过程,特别的,当机器人只有两条路可以走的时候,我们就可以控制它的走向,所以我们从实验室开始topo,当度数小于等于1时,这个点就是可以走的

2022-05-18 17:04:36 175 2

原创 洛谷P2754 家园(分层图+最大流)网络流24题(1)

洛谷P2754 家园(分层图+最大流)链接题意:有mmm个太空船和nnn个太空站,mmm艘太空船会周期性的停靠在一些太空站上,每过一个时间走一步,也可以选择不走,每艘太空船可以容纳一定数量的人,但是每艘船容纳的人不一样,太空站可以容纳无限多的人,一开始所有kkk个人都在地球,现在要把这些人都转移到月球,问需要多少时间。思路:首先可以先判一下连通性,然后开始建图,因为很麻烦的周期性,并且每个飞船在一定时间剩下的容纳人数不一定,所以很难直接跑出来,但是关键是时间,假设在某个时间,整个图的最大流大于k了,那

2022-05-17 09:44:02 197

原创 算法学习:容斥,莫比乌斯函数

算法学习:容斥,莫比乌斯函数容斥:容斥就是一个求集合并集的东西,可以套很多东西,但是算法复杂度高,为O(n∗2n)O(n*2^n)O(n∗2n)。举个简单的例子:求100里面有多少个数不会被2,3,52,3,52,3,5整除。我们从反方向考虑,假设所有都是答案,即有100个答案,那我们只需要分别减去2;3;52;3;52;3;5的倍数的个数,加上2,3;2,5;3,52,3;2,5;3,52,3;2,5;3,5的倍数的个数,再减去2,3,52,3,52,3,5的倍数的个数,对于奇数的选中就是加,偶数

2022-05-16 18:41:23 143

原创 Codeforces Round #791 (Div. 2)D. Toss a Coin to Your Graph...(二分+topo)

Codeforces Round #791 (Div. 2)D. Toss a Coin to Your Graph…(二分+topo)链接题意:给出一副有向图,给出kkk,要选择一个起点,走kkk步,让走过的路径上的最大值最小,输出思路:显然,如果路径上环,则一定可以走kkk步,然后要看最长链是否满足kkk,于是我们可以二分最大值,然后建新图,做一次topo判断最长路和是否存在环。#include<bits/stdc++.h>using namespace std;#define

2022-05-15 22:11:32 126

原创 Educational Codeforces Round 128 (Rated for Div. 2) C

Educational Codeforces Round 128 (Rated for Div. 2) CC. Binary String(双指针)链接题意:给出01字符串,可以删除开头的连续和结尾的连续,最后的价值是删除的1的个数和剩下的0的个数的max思路:很明显,这个0的价值具有单调性,所以我们用双指针☞一下就完了#include<bits/stdc++.h>using namespace std;int s[300010], n;int get(int l, int r)

2022-05-14 13:44:20 251 1

原创 Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学)

Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学)链接题意:给一个2∗n2*n2∗n的∗.*.∗.矩阵,你要随便选起点,走过所有的∗*∗,可以有一个不走,问最少多少步。思路:因为只有两列,我们直接分类讨论对于每一列的状态怎么从上一个转移,为了方便,设∗*∗为1,...为0,有一个变量idx1和idx2,这一行代表走到这一列的步数,此时是所有的∗*∗全被覆盖①当当前状态为000000的时候,idx1和idx2直

2022-05-14 01:45:20 207

原创 Educational Codeforces Round 118 (Rated for Div. 2) D. MEX Sequences(dp)

Educational Codeforces Round 118 (Rated for Div. 2) D. MEX Sequences(dp)链接题意:给出数组a,要按iii的顺序选出一些数作为数组xxx,对于x的每一个iii,要满足∣xi−mex(x1,x2,x3...xi)∣≤1|x_i-mex(x_1,x_2,x_3...x_i)|\le 1∣xi​−mex(x1​,x2​,x3​...xi​)∣≤1,求有多少个x。0≤ai≤n0\le a_i\le n0≤ai​≤n。n≤5e5n\le5e5n

2022-05-13 00:27:58 130

原创 Codeforces Round #779 (Div. 2) E. Gojou and Matrix Game(博弈,但是思维)

Codeforces Round #779 (Div. 2) E. Gojou and Matrix Game(博弈,但是思维)链接题意:给出一个矩阵,n∗nn*nn∗n,其中的价值互不相等,GM两人轮流取数,每个数任意多次,但与上一个位置的曼哈顿距离不能小于等于k。M先取,对于每个位置输出在1010010^{100}10100步之后谁会赢。n≤2000n\le2000n≤2000。思路:首先我们可以现根据博弈论确定必胜状态,那就是最大的一定赢,然后我们根据值排序,从大到小,确定赢得局面,现在我没有不

2022-05-12 00:12:30 204 1

原创 Codeforces Round #767 (Div. 1) C.Grid Xor(。。。)

Codeforces Round #767 (Div. 1) C.Grid Xor(。。。)链接题意:给出矩阵,这个矩阵的每一个值都是原矩阵这个点四周的点的异或,现在要求原矩阵所有点异或起来。思路:可以观察到,我们可以想成选那些点可以把原矩阵覆盖完。。然后因为n是偶数,一定可以由3和23和23和2加出来,所以我们直接一个个地方试能不能放下就行,能放下就异或上这个点。。推了半天怎么用那个图把矩阵覆盖完。。结果根本没用上。。。。。#include<bits/stdc++.h>using n

2022-05-11 20:52:41 172

原创 2021-2022 ICPC, NERC, Northern Eurasia Onsite J.Job Lookup(区间dp,二维前缀和)

2021-2022 ICPC, NERC, Northern Eurasia Onsite J.Job Lookup(区间dp,二维前缀和)链接题意:给出一副完全图,给出两个点之间的价值cijc_{ij}cij​,现在你要构造一颗二叉树,每个点的左儿子编号要小于它,右儿子编号大于他,现在两个点之间的权值为dij∗cijd_{ij}*c_{ij}dij​∗cij​,dijd_{ij}dij​为树上两点距离,现在你要让权值和最小,输出每个点的父节点是谁。n≤200n\le200n≤200。思路:首先假设我

2022-05-10 22:12:25 338

原创 Codeforces Round #789 (Div. 2) F. Tokitsukaze and Permutations

Codeforces Round #789 (Div. 2) Tokitsukaze and Permutations链接题意:给出序列c,代表第i位之前有cic_ici​个比他大的数字,如果是-1就是不知道,现在进行k次操作,每次操作如果ai>ai+1a_i > a_{i+1}ai​>ai+1​,就交换这两个数字,直到最后一个,类似冒泡排序,求有多少个排列进行k次操作之后,他的viv_ivi​和给你的viv_ivi​是相同的。思路:明天来写自己理解的#include<bit

2022-05-10 00:39:54 282 1

原创 Codeforces Round #789 (Div. 2) B~E

Codeforces Round #789 (Div. 2) B~FB.Tokitsukaze and Good 01-String链接题意:给出01字符串,要求每次可以修改一个地方,最后要让连续的1和连续的0的长度都是偶数,输出最下操作次数和最后的段数思路:首先考虑都变成奇数,从头开始每次跳2,假如不一样,说明出现了奇数的0或者1,就需要变成,然后统计段数,当和最后一次记录不同的时候,说明段数加一#include<bits/stdc++.h>using namespace std;

2022-05-09 21:18:37 234

原创 Codeforces Round #787 (Div. 3) Sorting Pancakes(dp)

Codeforces Round #787 (Div. 3) Sorting Pancakes(dp)链接题意:给出一个长度为nnn的数组,给出总和mmm,输入每一个位置的a[i]a[i]a[i],每次操作可以让(a[i]+1&&a[i+1]−1)∣∣(a[i]−1&&a[i+1]+1)(a[i]+1\&\&a[i+1]-1)||(a[i]-1\&\&a[i+1]+1)(a[i]+1&&a[i+1]−1)∣∣(a[i]−1&

2022-05-07 21:23:48 216

原创 Codeforces Round #769 (Div. 2) Distance Tree (hard version)(树的直径,树形dp)

Codeforces Round #769 (Div. 2) Distance Tree (hard version)(树的直径,树形dp)链接题意:给出一颗树,定义dis[i]dis[i]dis[i]为这个点到1号点的距离,现在要输出n次,每次可以添加一条边,他的权值是iii,加了边之后要最小化最大的disdisdis,输出这个disdisdis思路:首先容易看出来的是,一定是从1作为起点加边,然后现在完成最小化,对于当前的x,dis<xdis<xdis<x的可以不用看,我们把所有

2022-05-06 19:35:56 212

原创 Codeforces Round #663 (Div. 2) 505(思维,状态压缩dp

Codeforces Round #663 (Div. 2) 505(思维,状态压缩dp)链接题意:给一个nm的01矩阵,严格保证n<=mn<=mn<=m一个好的子矩阵定义为边长为偶数的正方形,并且1的个数为奇数,问最少变化多少次可以把所有子矩阵变成好矩阵,不能变成就是-1思路:首先对于n>=4n>=4n>=4,这时候,一定是-1,因为对于4,由4个22的矩阵构成,这四个如果是好矩阵,那么4*奇数一定是个偶数,所以只用分类讨论123的情况。#include<

2022-04-28 21:56:48 71

原创 Codeforces Round #774 (Div. 2) Power Board(数学)

Codeforces Round #774 (Div. 2) Power Board(数学)链接题意:给一个n*m的矩阵,每个元素的值是iji^jij,问有多少个不一样的元素思路:不过这个题为什么可以2200。首先可以看出41=22,42=22∗24^1=2^2,4^2=2^{2*2}41=22,42=22∗2,所以思路就是,对每个数字处理他的幂次倍,因为他们的值是一样的,最后有多少个不一样的幂次行就有多少的答案#include<bits/stdc++.h>using namespac

2022-04-28 00:55:09 425

原创 Codeforces Round #782 (Div. 2) AND-MEX Walk(位运算,并查集)

Codeforces Round #782 (Div. 2) AND-MEX Walk(位运算,并查集)链接题意:给出一副无向图,q次询问u,v之间的价值,价值的计算方法是MEX(w1,w1&w2,…,w1&w2&…&wk−1)MEX({w1,w1\&w2,…,w1\&w2\&…\&wk−1})MEX(w1,w1&w2,…,w1&w2&…&wk−1),每条边可以经过多次。思路:因为是&\&&

2022-04-26 12:22:38 196 5

原创 2021-2022 ICPC, NERC, Southern and Volga Russian Regional Contest X-Magic Pair(gcd)

2021-2022 ICPC, NERC, Southern and Volga Russian Regional Contest X-Magic Pair(gcd)链接题意:给出a,b,有两种选择,一种把a设置成∣a−b∣|a-b|∣a−b∣,或者把b设置成∣a−b∣|a-b|∣a−b∣,问最后a或者b能不能变成x思路:可以发现的是,这个操作就是一个类似于取模的操作,最后的结果可以被x整除,我们可以类比求gcd的方法,最后的结果是x,就是说max(a,b)%min(a,b)==x%min(a,b)

2022-04-26 12:02:28 576

原创 2021-2022 ICPC, NERC, Southern and Volga Russian Regional Contest Smash the Trash(二分)

2021-2022 ICPC, NERC, Southern and Volga Russian Regional Contest Smash the Trash(二分)链接题意:思路:二分答案,一个地方的垃圾如果小于人数直接清理,垃圾大于人数二倍就不行,剩下得情况就是a[i+1]+=(a[i]−mid)∗2a[i+1]+=(a[i]-mid)*2a[i+1]+=(a[i]−mid)∗2,最后判第n天能不能扫完#include<bits/stdc++.h>using namespa

2022-04-24 15:09:07 1123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除