自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Even Degree

传送门题意:给你一个n个点m条边的图,保证点的度数全为偶数,如果边连接的两点度数全为奇数,你不能删除这条边,其他情况都能删除,问你最多可以删除几条边,输出删除顺序。题解:由欧拉回路定义可知,图上的联通块一定是欧拉回路,奇数点为2的联通块也可以是欧拉回路,那么此时就有一个大胆的猜想:在原图的联通块中去除一条边后也是满足欧拉回路定义的图,那么对于每一个联通块,保留一条边后,其余边都是可以删除的,而且保留边是任意一条。也可以理解为你一直删除到最后一条边后,它连接的的点度数一定是1,那么肯定是不可删除的。然

2020-10-14 12:07:04 374

原创 Controversial Rounds

传送门题意:给你一个长度为你的由0,1,?构成的字符串,你可以选择将?改成0或1,问你构成连续i个的0或1,问你最大能构成多少个,i取1到n。题解:首先对于每一位置维护出从当前位置往后最多能有多少个连续的0或者1,这一步分可以从前往后dp转移。考虑最暴力的做法,对于每一个i从往后长度大于i的里面选一个大于当前位置的最小id出来,如果能找到ans++,更新当前位置,否则跳出,复杂度n^2,然后考虑优化,后面寻找的过程可以用线段树来进行优化,对于后面查满足条件的最小id在线段树中实际就是大于等于当前区间

2020-08-17 21:43:44 178

原创 2020牛客多校第五场H

题意:给你n个数,每次询问一个区间,问询问区间的子区间数取&去重后一个有多少个,强制在线题解:首先由与是&操作,那么对于第i个位置,不管是往左还是往右取&都是一个不增区间,具有单调性了,那么我们其实是可以通过二分来求得对于第i个位置,它往一个方向取&后会在哪些地方改变,如果可以离线那么这道题就可以和REQ这道题类似的做法,但是本题强制在线,而且询问是区间询问可以考虑用主席树来进行维护,大体思路与REQ类似,对于每一个取&后的数,如果是第一次出现那就在对应时间戳的对

2020-07-31 11:03:23 200

原创 2020牛客多校第二场G

https://ac.nowcoder.com/acm/contest/5667/G题意:给你两个序列,问你从第一个序列中有多少个与第二个序列长度相同的并且对应位置都是大于等于第二个序列的子串。题解: 神仙bitset题,维护第二个序列的bitset,例如样例中的 2 3 3,按照大小排序后维护的m个bitset为:0100,0110,0111,,样例中的数据维护的bitset不是很好理解,在举一个例子比如:2 4 5 3 6,按照大小排序后的m个bitset为:010000,010010,0110

2020-07-29 21:38:30 125

原创 Russian Dolls on the Christmas Tree(主席树)

传送门题意:给你一颗树,每个节点都有一个标号,问你将一个节点所有子节点及其本身的标号连接能形成几段。题解:大多是用线段树合并写的,所以补一发主席树的做法。将树用dfs序hash下来后,对于每一个节点,我们可以得知如果当前节点的前继在当前掌控的范围那么段数会减少一,即当前节点可以和子树中的节点合并为一段,那么问题就转化为对于当前节点掌控的子树,子节点中有多少节点的前驱在掌控范围中,这个就是主...

2020-07-29 21:05:36 465

原创 棋盘游戏 51Nod - 1327

题解:在放置棋子时仅仅要求左右满足条件与n的顺序无关,考虑一个二维dp数组,dp[i][j]代表放到了第i列还有j列没有放棋子,但是这个二维dp没有维护右限的信息,所以考虑增加一维代表有多少行到达了右限但没有棋子,将l和r区间的限制统计,可以得到dp转移方程:dp[a+1][b+1-l[a+1]][c+r[a+1]]+=dp[a][b][c]*sum[b+1][l[a+1]]%mod;枚举到当第i列,有l[i]行必须要放左区间了,从空的列中选择放入当前列不放入,同时加上到达右限的区间d.

2020-07-13 17:42:57 234

原创 F. Strange Function(Educational Codeforces Round 85 (Rated for Div. 2))

传送门题意:给两个数组ai和bi,删除ai中元素需要花费pi的代价,bi是一个严格递增序列,问你将ai删为bi的最小1花费代价。题解:开一个dp数组代表bi匹配到当前位的最小代价,由于bi是一个严格递增序列,所以ai对应唯一一个bi的匹配位置,所以用dp降为一维,dp[k]由dp[k-1]推出,即删除大于bi[k-1]的数,同时由于要求最小代价所以还应将小于等于bi[k-1]的负数也删除,...

2020-04-19 22:49:27 216

原创 P2664 树上游戏(点分治)

传送门题意:给你一颗N个节点的树,每个节点有一个颜色,让你求式子的值。题解:挂着点分治里面的练习题,其他的与点分治差不多,只是中间的维护不同,根据题意它两个点只间的值是路径是不同颜色的数量,划分分治中点后,路径被分为经过中点的和没有经过中点的路径,没有经过中点的路径是子问题,处理相同,考虑经过中点的路径怎么统计答案,首先通过一次dfs是可以统计出经过当前分治中点的路径的不同颜色和,以及每个...

2020-01-18 20:52:34 137

原创 Educational Codeforces Round 80 (D、E题解)

D. Minimax Problem传送门题意:给你一个n*m的矩阵,让你从中选出俩行合并为新的行,定义新行的值为俩行对于列中较大的,让你最大化新行的最小值,问你方案1是什么。题解:虽然n很大,但是m是小于等于8的,一维很小的情况很容易就能想到状态压缩,但是如果是状态压缩,那对于状态的定义又是什么呢,状态压缩一般为二进制压缩,只有两种状态,对于1e9范围的数,如果用两种状态来表示一个数...

2020-01-15 14:11:32 198

原创 codeforces 1285E Delete a Segment(线段树)

传送门题意:给你n个线段,线段有交点被看做同一线段,问你删除一条线段后形成的新线段的数量最大为多少?题解:题解是用扫描线写的,看不懂,提供一个线段树的做法,不过常数有点大。首先由于端点范围需要将端点离散化,同时由于线段可以是一个点,所以需要在相邻俩点拆一个点作为边,那么将所有线段加入后,你如果选择将一条线段删除,那么这条线段造成的影响就是它覆盖的区间中只被它有条线段覆盖的段数合,因为只有当...

2020-01-12 09:35:13 263

原创 New Year and Conference(线段树)

传送门题意:给你n组有俩个区间段A和B的数据,问你是否A相交时B也相交或者都不相交。题解:将端点离散化后按A左端点排序,另开一个数组按A右端点排序,按左端点将A加入,通过第二个结构体将A删除,同时对应增加或删除B区间,那么当前留下的A区间都是相交的,同时用线段树维护被B区间最多的覆盖次数,那么每次删除时,留下的A区间数等于B的最大覆盖数,然后反转AB区间在处理一次就可以得到答案,复杂度O(...

2020-01-09 10:14:11 158

原创 CF19D Points(线段树)

传送门题意:有n次操作,每次操作分3种:1 add x y操作,向坐标系的第一象限(包括坐标轴)添加一个点,点的坐标不超过1e9,而且相同的点不会重复添加,2remove x y操作,删掉(x,y)这个点,3find x y操作,找到点(x,y)右上方,x最小的点,如果出现多个选择y最小的点,题解:一种线段树加一丢丢优化的做法,先读入所有操作,先对坐标进行处理,将x乘以1e9,排序离散...

2019-09-19 11:20:49 327

原创 Longest Subarray(hdu-6602)

传送门题意:给你一个长度为n的序列,序列中元素的值不会超过c,问你满足区间中的每个数都出现至少了K次的最长区间的长度题解:一个玄学复杂度的做法,开一个vector记录每种权值的位置,枚举右端点,如果右端点满足条件,就可以初步确定一个区间,在判断在这个区间里面的数需要满足出现k次的最小位置k1,如果k1存在且小于l,就递归处理[k1,l],如果大于等于就直接计算长度,那么就可以求出以当前端点...

2019-08-28 20:32:28 167

原创 P2839 [国家集训队]middle(主席树)

传送门题意:给你一个数组,每次询问给你两个区间,问你从两个区间中各自确定一个端点形成一个区间,所有的区间中排序后中位数最大是多少,强制在线题解:对于一个数如果可能是当前区间的中点,那么区间中比它小的数的数量必定小于区间长度的一半,如果将区间中小于当前的数赋值为-1,大于等于的数赋值为1,则可以转变为区间的值是大于等于0的,由于要求求最大,可以直接二分答案,将求值问题转变为判定性问题,则如果...

2019-08-20 16:21:34 132

原创 P4121 [WC2005]双面棋盘(线段树+并查集)

传送门题意:给你一个棋盘,棋盘格子有颜色,每次都会单点修改,问你修改后的白色和黑色联通块的数量。题解:并查集是可以用来求联通块数量的,如果没有修改就是一个简单的带权并查集,但是由于有修改并且在棋盘上,所以如果只是并查集是不足以完成的,然后注意题目限制1≤n≤200,而且每次只是单点修改,修改直接影响的只有当前列(将棋盘按列分割开)对于其他列是没有影响的,然后就只会在相邻行合并时产生影...

2019-08-20 15:55:14 192

原创 堵塞的交通traffic(线段树神题)

传送门题意:有一个2*n的方格,每个方格会与周围的格子连接,最开始路是断开的,给你3种操作,输出询问操作的格子是否连通;题解:线段数神题,也是李超ppt中的例题之一,用线段树维护当前2*len长度的方格的联通性,将方格4个角的联通性与中间格子的联通性记录下来,当前区间的联通性可以由子区间得到,例如:要得到当前区间左上和右下的连通性,可以先看左区间的连通性,在通过中间的方格中转在考录右区间的...

2019-08-15 20:59:35 797

原创 Aninteresting game HDU - 5975

传送门题意:给你一个n和q,代表区间长度和操作次数,操作有两种:1 l r 查询[l,r]的[i-lowbit(i)+1,i]的合(l<=i<=r), 2 l 查询有好多个数满足i-lowbit(i)+1<=l<=i-1(i<=n);题解:1.对于第一种操作,如果不考虑n的范围就是一个nlogn的傻逼题,但是n的范围是[1,1e18],所以基本是O(1)或...

2019-08-14 10:20:14 105

原创 Guess the number (HDU - 5981 )

传送门题意:给你一个区间[a,b],让你去猜一个数X,每次可以从区间中选择一个数Y,它会告诉你Y和X的大小关系,如果小于X,它会直接告诉你猜的数小了,如果等于,那么游戏结束,如果大于了X,它只会在第一次给你信息,在这之后,它只会告诉你猜的数是否等于X,让你求最坏情况下,它需要的最小猜测步数和最小猜测步数下的方案数;题解:1.这个问题很显然与区间位置无关,只与区间长度有关;2.考虑下...

2019-08-14 09:40:03 236

原创 Tokitsukaze and Duel

传送门题意:给你一个n和k,在给你一个由0和1构成的长度为n的字符串,每次操作你可以选择一个长度为k的连续子串,然后将其改变成相同颜色,先将字符串改成相同颜色的人获胜题解:当n<=k+1时,先手可以直接翻折成同一颜色,属于先手必胜,对于n>2*k时,如果先手不能通过一次操作取得胜利,那之后就不会有人获胜,因为如果先手不能一次取得胜利,那至少需要两步获胜,当n>2*k时,先...

2019-07-16 19:46:54 160

原创 1-2-K Game

传送门题意:给你两个数,分别是n和k,每次操作你可以将n-1或者n-2或者n-k,谁不能再次进行操作就输了;题解:首先考虑当n<k时,由sg函数易知当n%3==0时,是先手1必败态,然后当n==k时可以一次去完为先手必胜,当n>k时,对于之后的数后继状态就会增加一个n-k,但是当k%3!=0时,对当前状态没有影响,当前状态是3的倍数时,新增加的状态必不可能是0,所以当前还是先手...

2019-07-16 19:18:42 149

原创 No More Tic-tac-toe

传送门题解:题目要求X不能相邻,O不能相邻,对于1个1*N的棋盘,会由X或者O分割成几个部分,每个部分的sg异或合就是最后答案,对于每个部分它的sg都会被左右的X合O所影响,但是有于N很小,可以直接预处理出来当前有几个可选位置时左右分别是X或者O在或者就是边界(也就是-1和len位置)时的sg函数值,求sg函数:m['X']=1; m['O']=2; memset(f...

2019-07-10 15:28:40 176

原创 Game of Hyper Knights

传送门题解:每一个棋子可以跳8个位置,对于位置它的所有后继状态就是跳了8个方向后的局势,到达必败态后就可以求出之前的sg函数,对于一个500的棋盘预处理打表即可AC代码:#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>#define ...

2019-07-10 15:16:42 100

原创 Again Stone Game (打表)

传送门题解:打表可得到偶数是的sg函数等于其本身的一半,然后考虑奇数时,由于每次取不超过1/2,则奇数n的后继状态相对于前一个偶数少了偶数1/2的状态,由于偶数的sg为其本身的1/2,则奇数的sg就是sg[n/2];AC代码:#include<stdio.h>#include<algorithm>#include<iostream>#defi...

2019-07-10 15:12:14 171

原创 Treblecross

传送门题解:题目要求3个X不能相邻,会产生相邻的位置就成了禁区,则X会将其分成很多段,每一段只包含可以下的位置就是其后继状态,预处理出.数目的sg函数,最后将分段后的sg异或就是答案,合法位置就是选了当前位置后局势转变为先手必败AC代码:#include<stdio.h>#include<algorithm>#include<iostream>...

2019-07-10 15:06:22 119

原创 Crazy Calendar

传送门题解:离右下顶点距离为偶数的位置对答案没有贡献,距离为奇数的点下一个状态距离必然是偶数点,则局势转变为谁能取走最后一个,nim博弈AC代码:#include<stdio.h>#include<algorithm>#include<iostream>#define ll long longusing namespace std;int...

2019-07-10 14:58:42 117

原创 Incredible Chess(博弈)

传送门题解:后退对局势不产生影响,博弈转变成谁能取到最后一个位置,nim博弈模板AC代码:#include<stdio.h>int w[105];int main( ){ int t; scanf("%d",&t); for(int t1=1;t1<=t;t1++){ int n; scanf("%d",&n); for(in...

2019-07-10 14:53:58 139

原创 Game of CS

传送门https://vjudge.net/problem/LightOJ-1355题解:树博弈变种,偶数权值没有贡献,只有奇数权值产生贡献,特判1的情况AC代码:#include<stdio.h>#include<vector>#include<string.h>#include<algorithm>#include<i...

2019-07-10 14:50:45 142

原创 E. Minimal Segment Cover(dp)

传送门题意:给你n个线段,m次询问,让你输出n条线段中能完全覆盖询问的线段的最小数量题解:乍一看有点像区间覆盖问题,但是它n和m给你的是5e5,很大,所以对于询问应该近可能快速的得出答案,同时对于序列的操作也只能在询问前进行;通过对线段的处理,我们可以得到每个点只用一条线段最远能跳到哪个位置,同理用俩条线段最远能跳到哪也可以求出,然后如果跳x条线段之后就大于了右端点,最小数量就是x,如果有...

2019-06-12 21:07:18 233

原创 And Reachability(DP)

传送门Toad Pimple has an array of integersa1,a2,…,ana1,a2,…,an.We say thatyyis reachable fromxxifx<yx<yand there exists an integer arrayppsuch thatx=p1<p2<…<pk=yx=p1<p2&lt...

2019-06-05 20:46:07 180

原创 P5283 [十二省联考2019]异或粽子(主席树+最大异或和)

传送门题意:从所有区间长度大于l小于r的区间段中,选择最大的k个区间异或合相加,输出答案这道题与P2048 [NOI2010]超级钢琴的思想相似,如果没有做过可以先去尝试一下超级钢琴。P2048 [NOI2010]超级钢琴:传送门题解:由于异或一个相同的数,异或值为0所以对于前缀和来说,sum[r]XORsum[l-1]其实就是r到(l-1)的异或合,所以对于求的第几大值我们可...

2019-06-03 15:02:44 219

原创 P3293 [SCOI2016]美味(主席树+最大异或合)

传送门题意:给你n个数,每次给你一个l到r区间,还有一个bi和xi,每次输出l到r中使得bi XOR (aj+xi)值最大,输出最大值题解:首先是最大异或合,最大异或合的求法是基于贪心的思想,来源于:10000XOR00000>10000XOR11111,所以对于我们要找的最大值,我们将所有的数拆成二进制,从高位开始选取,如果有使当前位异或为1的值就直接选取,由于只是贪心了当前位所以...

2019-06-03 14:53:05 130

原创 P3527 [POI2011]MET-Meteors(整体二分+树状数组)

传送门题意:给定一个环,每个节点有一个所属国家,k次事件,每次对[l,r]区间上的每个点点权加上一个值,求每个国家最早多少次操作之后所有点的点权和能达到一个值题解:题目要求找到最小的事件使权值达到一个值,如果是只有一个国家,那很容易就能想到二分答案,判断枚举的数的合法性,在继续二分下去,找到最小值,但是对于多个国家复杂度就会多一个n——————TLE; 最开始想的时候还是想的二...

2019-05-23 19:36:26 144

原创 P2048 [NOI2010]超级钢琴(主席树+前缀合)

传送门题目:小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这...

2019-05-22 20:51:31 155

原创 落谷 P4833 萨塔尼亚的一生之敌(思维+图论+并查集)

传送门题意:给你n个点,m条边,让你将n个点分成尽量多的集合,不在同一集合的点俩俩之间要有边存在,问你最多能分成多少个集合,每个集合有多少个节点题解:最开始任选一个节点v,所有没有与v有边相连的点都应与v属于同一集合,记录数量,维护联通块,然后从不属于已经出现的联通块中任选一个节点,与最开始一样的操作,但是由于已经有联通块出现了,所以如果必须与当前点在同一集合中点已经属于其他联通块了,那么...

2019-04-25 15:11:24 174

原创 P4768 [NOI2018]归程(可持久化并查集+最短路)

传送门题意:给你一张图,图中有m条边,每条边有长度和一个海拔值,给你q次询问,每次给你一个节点v和一个海拔值p,问你从v到1的最短距离是多少,对于图中的边如果海拔值大于p,那边的长度在这次查询时就会变为0;题解:首先对于海拔大于o,那边连接的点就相当于一个点,那对于一个联通块来说,联通块中的所有点到1的最短距离就是就是最短距离对应的那个点,所以我们需要维护一个并查集,然后考虑对于每次海拔的...

2019-04-24 13:39:10 154

原创 Prediction(并查集+思维)

传送门题意:给你一棵树和一张图,树上的节点代表了图上的一条边,每次给你一个树上的集合,你需要将集合中的点以及在树上点的所有父亲节点代表的边在图中连接,给出图中联通块个数;题解:如果只有一次询问,那可以直接对树跑dfs同时维护一个并查集,最后输出联通块数量,就是并查集的基础操作,但是由于是q次查询,所以按照一次查询来做,时间就会原地爆炸,但是思路还是不变,联通块用并查集维护,那我每次查询的时...

2019-04-24 12:27:46 328

原创 bzoj 3674(可持久化并查集)

传送门题解:一道可持久化并查集的裸题,板子子对了就能过;可持久化并查集是基于主席数的一种结构,可持久化并查集要求能够访问历史版本,跟主席树很像,所以可以通过主席树维护普通并查集的fa数组,但是由于用主席树维护后没有办法用路径压缩,所以需要采用新的合并方式——启发式合并,对每一个节点增加一个level,每次合并从小的指向大的,如果合并的两个节点的level相等,则合并后的节点的level需要...

2019-04-17 22:00:20 160

原创 2019西北工业大学程序设计创新实践基地春季选拔赛(重现赛) --Chino with Rewrite(树链剖分)

链接:https://ac.nowcoder.com/acm/contest/553/I来源:牛客网Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino如何出题。«Rewrite»是Key社的一款非常好玩的文字冒险游戏,在游戏的背景设定里,かがり需要完成一棵世界树的重构,重写这个世界。这很像出题呢,一开始只有几个零星的idea,慢慢地把它们组织到一起,变成...

2019-04-10 14:07:11 189

原创 E. Maximize Mex

传送门题目:There arennstudents andmmclubs in a college. The clubs are numbered from11tomm. Each student has a potentialpipiand is a member of the club with indexcici. Initially, each student ...

2019-03-26 21:40:41 255

原创 Nastya Hasn't Written a Legend

传送门题目:In this task, Nastya asked us to write a formal statement.An arrayaaof lengthnnand an arraykkof lengthn−1n−1are given. Two types of queries should be processed:increaseaiaibyx...

2019-03-22 13:57:50 264

空空如也

空空如也

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

TA关注的人

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