自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对拍c++程序

对拍 今天用对拍改了两道陈年老题,就很开心。 把c++的对拍程序放上来 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<cstdl...

2018-03-16 19:59:04 826

原创 好♂友の链接

都点一下老伙计/隔壁老王某猪腐佬我也不知道外号是什么zzt

2016-07-15 19:14:56 1454 3

翻译 一片空白

我也不知道为什么有那么多人看。  我只知道

2016-07-11 16:33:49 972 4

转载 网站

重要的信息学网站 湖南师大附中 北京八中中 https://vijos.org/ 天津大学 http://acm.tju.edu.cn/toj/ 洛谷 http://www.luogu.org/ tyvj http://www.tyvj.cn/ 北京大学

2016-06-01 17:08:32 839 2

原创 【模板】可持久化平衡树 洛谷3835

题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 1.插入x数 2.删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作) 3.查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 4.查询排名为x的数 5.求x的前驱(前驱定义为小于x,且最大的数,如不存在输出-2147483...

2018-04-25 16:55:17 509

原创 [IOI2011]Race bzoj2599

题目 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000 分析 开一个100W的数组t,t[i]表示权值为i的路径最少边数 找到重心分成若干子树后, 得出一棵子树的所有点到根的权值和x,到根a条边,用t[k-x]+a更新答案,全部查询完后,再用所有a更新t[x],这样可以保证不出现点分治中的不合法情...

2018-04-24 18:05:35 518

原创 Tree bzoj 1468

题目 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 分析 点分治 我们找到树的重心,然后dfs,求出每个点到root的距离deep,然后对deep排序,扫描哪些点对是符合的。 但是,点分治要求处理的路径是经过root,所以如果一条路径是在同一个子树之内的就不符合要求,所以还要对子树dfs一下,然后去重。 接下来处理好root后...

2018-04-23 19:13:38 421

原创 【GDSOI2018模拟4.19】排列

题目 有 n 个数 x1 ~xn 。你需要找出它们的一个排列,满足 m 个条件,每个条件形如 x_a 必须在x_b之前。在此基础上,你要最大化这个排列的最大子段和。 分析 我也不是特别清楚他的原理。。。 code #include<iostream> #include<cstring> #include<cstdio> #include<cm...

2018-04-19 18:53:34 548

原创 【GDOI2018Day1模拟4.17】药香沁鼻

题目 分析 首先求出这棵树的dfs序,设lx表示以x为根的子树中的dfs序最小值(即点x的dfs序),设rx表示以x为根的子树中的dfs序最大值。 然后按照dfs序枚举点,每个点维护一个背包,对于点x,如果选这个点,就 把它加到lx+1的背包里,如果不选这个点,就把点x的背包与rx+1的背包合并 (这个合并是直接合并,即Ci= max(Ai,Bi))。 这样,不管这个点选或不选,都...

2018-04-17 18:54:57 454

原创 求排名为K的子串

题目 给我们一个字符串,让我们求其所有不相同的子串中按字典序排名为K的子串 分析 先用SAM跑一遍。 然后在SAM上DP。 因为从SAM的起点跑可以跑出所有的子串,所以我们用dp[i]表示从i点出发跑出的子串的个数,显然有 dp[i]=∑ j=a,z dp[ch[i,j]]+1 然后每次按照a..za..z的顺序从起点开始dfs,如果沿ch[i,j]的方向走下去的个数≤k,就沿着...

2018-04-17 08:22:05 543

原创 Glass Beads poj 1509

题目 一个字符串可以将第一个字符放到最后一位,然后问不断这样做可以得到的字典序最小的字符串 分析 后缀自动机 每次找最小的字母边转移,转移l次,找到的就是最小串表示的结尾点。 code #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #in...

2018-04-16 21:07:15 348

原创 普通平衡树 bzoj 3224

题目 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数 分析 分析个屁 无旋treap——链接 分析 ...

2018-04-16 14:48:23 367

原创 The Counting Problem poj 2282

题目 求出区间内0~9的个数 分析 因为前导0的干扰,为了计算方便暂时都先计算在内,之后再减;   如果是0~199,那么百位上的0和1各出现一次,s剩下的就是两个00~99,总共两百个二位数,而每个数出现的次数都一样,都是2*(99-00+1)/10;   那么任意的数都可以分解成类似的数字,如3426,则可以分成0000~2999,3000~3399,3400~3419,3420~3...

2018-04-11 21:20:36 320

原创 Apocalypse Someday poj 3208

题目 问你在所有包含666的数中,第n大的是多少。(1 ≤ n ≤ 50,000,000) 。开头几个是666, 1666, 2666, 3666, 4666, 5666… 分析 套路 先dp预处理,再一位位的填数。 code #include<iostream> #include<cstdio> #include<cstdlib> #inc...

2018-04-11 18:23:04 395

原创 [Ahoi2009]self 同类分布 bzoj 1799

题目 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数。 分析 设f[i][j][k][l] 表示由i位数字(可以有前导零),各位数字和位j,对k取莫余数为l的数有多少个。 枚举第i为数字p f[i][j][k][l]=f[i-1][j-p][k][(l-p*10^(i-1))%k] 然后就每一位的填数计算方案即可。...

2018-04-10 20:40:33 396

原创 乌龟棋 洛谷1541

题目 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1、2、3、4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张...

2018-04-07 21:41:18 461

原创 找回密码 jzoj 4025 后缀自动机

题目 Kevin是一个热爱字符串的小孩。有一天,他把自己的微信登录密码给忘记了,万般无奈之下只好点“找回密码”。 这时候,网页上出现了当初设定的密保问题:在字符串st中,有若干个内容不同的子串,请问其中字典序第k小的子串是什么? 很可惜的是,Kevin现在已经不会写程序了,所以,他找到了睿智的你来帮忙。 分析 对串创建SAM,然后,拓扑一下,算出每个状态,如果继续往后边走,能够生成多少种...

2018-04-07 20:11:58 571

原创 【GDKOI2015】星球杯

题目 分析 先枚举第一轮排名为第k名的选手(分数为x),则必存在一种最优方案有: 1. 对于分数少于x的0国选手,都安排在第一轮; 2. 对于分数少于x的1国选手,都安排在第二轮。 做一下预处理 1. 第一轮分数低于x的1国选手对答案无贡献,所以我们先筛除这部分选手; 2. 剩下:1国选手 和 第一轮分数不低于x的0国选手; 3. 对于剩余部分的选手,按照第二轮分数从高到低排序...

2018-03-21 21:18:29 481

原创 【GDKOI2015】看门狗

题目 分析 dp走起: f[i][j] = max{ f[i-1][k] + vx[i] + vy[j] | k < j and (i, j) ∈ E, f[i-1][j], f[i][j-1], f[i-1][j-1]} 可以用线段树优化

2018-03-20 21:51:30 354

原创 Dynamic Rankings 洛谷2617 (2)

题目 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令。 对于每...

2018-03-15 22:07:38 333

原创 Dynamic Rankings 洛谷2617 bzoj 1901

题目 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令。 对于每...

2018-03-15 20:28:23 476

原创 poj 2228 Naptime

题目 从N个元素(环形队列)中选出B个,求最大得分。(元素得分仅当其前面的元素也被选择了) 分析 我就不想口胡了 链接 现在知道了处理环上的dp还能这样玩 code #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include&l...

2018-03-14 20:59:44 366

原创 [Apio2010]patrol 巡逻 bzoj 1912

题目 给出一棵树,边权为1。现在加一条或两条边后,使得从1出发遍历每个点至少一次再回到1的路程最短。 分析 先求一次树的直径Max1。然后将直径的边权改为-1,再求一次直径Max2。答案为ans=(n-1)*2-(Max1-1)-(Max2-1)。 code #include<iostream> #include<cstring> #include<cs...

2018-03-13 21:37:24 316

原创 poj 3565 Ants

题目 平面上共有2*n个点,n个是白点,n个是黑点。对于每个白点,找到一个黑点,用线段连接起来。要求所有的线段不相交。 分析 在心理课上看到的题 一开始毫无头绪,后面想了一下,发现如果不相交,其实等价于让每条线段的长度之和最小。 来幅图 于是就变成了最小费用流。 code #include<iostream> #include<cstring> #i...

2018-03-13 17:58:38 407

转载 黑白树 jzoj 3973

题目 给定一棵树,边的颜色为黑或白,初始时全部为白色。维护两个操作: 1. 查询 u 到根路径上的第一条黑色边的标号。 2. 将 u 到 v 路径上的所有边的颜色设为黑色。 分析 先将所有操作正着进行一遍,将所有的黑边相邻的点按照关系合并,就是一个集合中的代表元素一定是深度最小的点。 然后找出所有自始至终都是白色的边,以及每条边变黑的时间。将白边用并查集合并 倒着做所有的操作,对...

2018-03-11 20:02:06 447

原创 GDKOI2016 魔卡少女

题目 给出N个数,M个操作。操作有修改和询问两种,每次修改将一个数改成另一个数,每次询问一个区间的所有连续子区间的异或和。n,m<=100000,ai<=1000 分析 当时我可是直接暴力30分的。。。 然后正解也很暴力。 位运算,考虑一位位的来做。 那么目标变成了每一位统计1的个数。 对于一个区间,维护: d:这段区间的异或和 L[0],L[1]:子区间一定从左端...

2018-03-08 21:51:21 573

原创 聪聪可可 洛谷2634 bzoj 2152

题目 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。 他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数...

2018-03-08 18:26:43 331

原创 点分治1 洛古3806

题目 给定一棵有n个点的树 询问树上距离为k的点对是否存在。 分析 其实点分治就是把暴力改的优化而已。。。 被卡常了很难受 code // luogu-judger-enable-o2 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> ...

2018-03-07 20:44:28 389

原创 Big String poj 2887

题目 给你一个不超过1e6的字符串,和不超过2000次的操作 操作分为两种: 1.将一个字符插入到某个位置的前面 2.询问当前位置的字符 分析 分块 把队列分为分块后暴力操作即可 ps:可以用二分节省时间。 code #include<cstdio> #include<cstring> #include<iostream> #includ...

2018-03-06 21:14:23 342

原创 大爷的字符串题 洛古3709

题目 给你一个字符串a,每次询问一段区间的贡献 贡献定义: 每次从这个区间中随机拿出一个字符x,然后把x从这个区间中删除,你要维护一个集合S 如果S为空,你rp减1 如果S中有一个元素不小于x,则你rp减1,清空S 之后将x插入S 由于你是大爷,平时做过的题考试都会考到,所以每次询问你搞完这段区间的字符之后最多还有多少rp?rp初始为0 询问之间不互相影响~ 分析 语文考察题。...

2018-03-06 17:10:26 408

原创 bzoj2852 强大的区间

题目 curimit很喜欢区间,最近发现了一种很强大的区间。 curimit发现有的区间虽小,比如 (1.99998, 2.000001),但是其中却包含了一个整数2。 但是有的区间较大,比如(1.0001, 1.99998),但是其中却一个整数都没有。 他觉得包含整数的区间很强大,并且提出了一个问题: 我们先给出两个非负实数a,b我们要求一个最小的正整数k ,使得区间(a*k, b*k...

2018-03-05 21:06:17 589

原创 洛古2444 [POI2000]病毒 ac自动机

题目大意 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。 示例: 例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病毒代码段...

2018-03-05 20:10:33 380

原创 [bzoj2946]公共串

题目 给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果 分析 对第一个字符串建后缀自动机 对于每一个状态维护f[i]表示所有串与该状态匹配的公共最长长度。 对于其他的字符串,都在后缀自动机上进行匹配。 并每次都计算g[i]表示该字符串与状态i匹配的最大长度。 ...

2018-02-27 20:48:07 339

原创 【模板】普通平衡树(Treap/SBT) 洛谷 3369 splay

题目 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 求x的后继(后继定义为大于x,且最小的数) 分析 splay模板 ps:我保证这次的模

2018-02-04 15:55:48 364

原创 哈希冲突 洛谷3396 根号算法

题目 众所周知,模数的hash会产生冲突。例如,如果模的数p=7,那么4和11便冲突了。 B君对hash冲突很感兴趣。他会给出一个正整数序列value[]。 自然,B君会把这些数据存进hash池。第value[k]会被存进(k%p)这个池。这样就能造成很多冲突。 B君会给定许多个p和x,询问在模p时,x这个池内数的总和。 另外,B君会随时更改value[k]。每次更改立即生效。 保证1

2018-02-04 09:04:25 556

原创 【NOI2015模拟8.20】编辑器 jzoj 3789 栈+神奇操作

题目 你正在设计一种新型的编辑器,这种编辑器可以高效地处理整数序列。 编辑器启动时,序列为空,光标指向序列的头部。编辑器支持下列 5 种操作: 1. I x 把整数 x 插入到光标位置; 2. D 删除光标之前的整数(保证光标不在序列的头部); 3. L 如果光标不在序列的头部,向左移动一个位置,否则不移动; 4. R 如果光标不在序列的尾部,向右移动一个位置,否则不移动; 5. Q

2018-02-03 20:56:06 373 1

原创 【NOIP2014模拟8.21】签到题3 jzoj 3797 树链剖分

题目 给定一棵有根树(根节点为1),每个点都带有权值,对于点u,其权值设为a[u],其父亲为fa[i]。现有两个函数f1,f2,定义如下: 如果u=1,f1[u]=a[u],f2[u]=1 否则 如果f1[fa[u]]+1 分析 稍微一分析就可以发现: 对于一个点X,它有一个祖先Y,那么点Y对于点X的f1影响是a[y]+(deep[x]-deep[y]). f1就是求一个点到树根的

2018-02-03 15:39:57 736

原创 【BJOI2014】大融合 jzoj 3766 树链剖分+并查集

题目 小强要在N个孤立的星球上建立起一套通信系统。这套通信系统就是连接N个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量. 现在,你的任务就是随着边的添加,动态的回答小强对于某些边的负载的询问。 分析 显然一条边的负载等于将这条边断开后形成的两个子树的节点数的乘积。 在计算一条边的负载的时候,可以将所有与之连通的

2018-02-02 20:15:37 305

原创 [Ahoi2013]差异 bzoj 3238 后缀自动机

题目 分析 后缀自动机模板 后缀自动机真是个强大的数据结构 大佬的链接——后缀自动机 code #include #include #include #include #include #define N 500005 #define LL long long using namespace std; int n; int len[N*2]; int ch[N*2][30]

2018-02-01 20:28:08 452

原创 【Srm590】Fox And City jzoj 3749最小割

题目 A long time ago, 有一个国家有n 座从0 到n-1编号的城市。城市0 是首都。国家道路网络形成了一个无向连通图。换句话说:某些对城市被双向通行的道路所连接。 对于每座城市,可以从城市出发经过一系列连续的道路到达首都。(当两条道路需要在城市外相交时,相交处总是会有一座桥梁,因此城市外并没有路口。) 你会获得一个用于描述道路网络的字符矩阵linked。对于每个i 和j,当城

2018-02-01 15:19:08 413

空空如也

空空如也

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

TA关注的人

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