05 2018 档案

摘要:DZY Loves Colors 题意:有n个蛋糕,起初第i个蛋糕他的颜色值为i, 现在有2个操作, 1 x y c 在[x, y]的蛋糕上都加上一层颜色值为c的蛋糕片,加了这个蛋糕片之后,会产生一个惊喜值为abs(c-a) a为上一层蛋糕片的颜色。 2 x y 求出[x, y]区间内所有蛋糕的惊喜 阅读全文
posted @ 2018-05-31 21:47 Schenker 阅读(292) 评论(0) 推荐(0)
摘要:Holes 题意:现在有一排洞,每个洞有一个弹力,能弹到ai之后的洞,球会弹到这个排的外面,现在有2个操作,0 a b 将第a个洞的弹力设为b, 1 a 将球放入第a个洞,求输出进洞的次数 和 弹出这排洞进入的最后一个洞。 题解:分块暴力,对于每一个块,记录下这每一个点到下一个块的入口位置,和在这个 阅读全文
posted @ 2018-05-31 16:55 Schenker 阅读(226) 评论(0) 推荐(0)
摘要:AND Graph 题意:给你一个n,一个m,m < 2^n, 然后就是如果 x & y == 0 的话就可以将这2个数连起来, 求最后的有几块。 题解:对于一个数 11000 则 他必定可以 与 00111相链接, 那么也一定可以和00111中间少了任何几个1的数相连。 任何我们对于任意一个数都跑 阅读全文
posted @ 2018-05-30 21:51 Schenker 阅读(270) 评论(0) 推荐(0)
摘要:GukiZ and GukiZiana 题意:有2个操作,1 l, r, c 将区间[ l,r ]里的值都加上c, 2 y 需要找到最大的 j - i 需要满足 xj = xi = y。 题解:暴力分块,开sqrt(n)块,然后每次更新的时候,如果这个块被全覆盖,就用lazy标记,然后零散的点就直接 阅读全文
posted @ 2018-05-30 19:37 Schenker 阅读(247) 评论(1) 推荐(0)
摘要:Another Version of Inversion 题意:只有2种走路方式,往右或者往下,求先走到一个大的数,在走到小的数的这种方式有多少。也就是说求出关于这个2维矩阵的逆序数。 题解:二维数组+逆序数就完事了。 代码: 1 #include<bits/stdc++.h> 2 using na 阅读全文
posted @ 2018-05-29 23:28 Schenker 阅读(307) 评论(0) 推荐(0)
摘要:Time to Raid Cowavans 题意:一共有n头牛, 每头牛有一个重量,m次询问, 每次询问有a,b 求出 a,a+b,a+2b的牛的重量和。 题解:对于m次询问,b>sqrt(n)的时候我们直接把结果跑出来,当b<sqrt(n)的时候我们离线询问,算出所有一个b的任意一起点的值。 复杂 阅读全文
posted @ 2018-05-29 14:38 Schenker 阅读(193) 评论(0) 推荐(0)
摘要:Unfair Poll 题意:一共有n排同学每排同学有m个人, 老师问问题有一个顺序, 先从第一排开始问,问完第一排的所有同学之后,再问第2排的,对于所有排的访问顺序为 1,2,3……n-1,n,n-1,n-2,……,2,1,2,然后每次访问到新的一排先要问完这一排的所有人才会往下一(目标)排走。 阅读全文
posted @ 2018-05-28 23:34 Schenker 阅读(162) 评论(0) 推荐(0)
摘要:Ability To Convert 题意:给你一个n进制的60位的数,但是由于Alexander只会写0->9,所以他就会用10来表示十而不是A(假设进制>10); 题解:模拟就好了,先走往前走进制的位数的倍数,再判断一下首位是不是0,或者这个数有没有大于等于进制,如果有就不行,就要往后走,走到一 阅读全文
posted @ 2018-05-28 23:23 Schenker 阅读(119) 评论(0) 推荐(0)
摘要:楼房重建 HYSBZ - 2957 第一次写分块, 写了之后觉得真的是暴力的一比。 题解:先讲n分成 sqrt(n)块,记得补上末尾的, 然后就是对于每一次更新操作, 都重新的讲这个块里面的有效楼放入vector里面, 然后再从头开始upper_bound查找就好了。 还是再说一句, 真的暴力。 代 阅读全文
posted @ 2018-05-28 14:49 Schenker 阅读(140) 评论(0) 推荐(0)
摘要:HDU-4747 题意:对于每一段连续区间找到mex的值(mex 即为没出现过的数的最小非负数),然后对所有的改值进行求和, 输出ans。 题解:首先我门可以暴力的跑出 区间 [1,2], [1,3],……,[1,i]的mex值, 由于mex的定义, 我们可以得知, 左边的区间mex一定是不大于右边 阅读全文
posted @ 2018-05-28 00:10 Schenker 阅读(264) 评论(0) 推荐(0)
摘要:Count on a tree 题意:求路径 u到v上的 第k小的权重。 题解:先DFS建数, 然后对于每个节点往上跑出一颗主席树, 然后每次更新。 查询的时候, u, v, k, 找到 z = lca(u,v) , p = anc[z][0], 然后对于这条路上左边子节点的个数就可以被表示为u,v 阅读全文
posted @ 2018-05-27 15:08 Schenker 阅读(174) 评论(0) 推荐(0)
摘要:数据结构 树状数组 线段树 主席树 splay lct 字符串 KMP 字符串hash AC自动机 字典树 杂 思维 贪心 博弈 二分 && 三分 双指针 分治 CDQ 点分治 图 Tarjian缩点 最短路 Dijkstra ballman_ford 欧拉回路 最小生成树 拓扑排序 网络流 常用算 阅读全文
posted @ 2018-05-26 23:37 Schenker 阅读(398) 评论(0) 推荐(1)
摘要:SPOJ - 3267 主席树的又一种写法。 从后端点开始添加主席树, 然后如果遇到出现过的元素先把那个点删除, 再更新树, 最后查询区间就好了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen freopen("_i 阅读全文
posted @ 2018-05-26 21:08 Schenker 阅读(145) 评论(0) 推荐(0)
摘要:Dynamic Rankings 带修改的区间第K大其实就是先和静态区间第K大的操作一样。先建立一颗主席树, 然后再在树状数组的每一个节点开线段树(其实也是主席树,共用节点), 每次修改的时候都按照树状数组的方式去修改,并且修改那些地方。查询的时候就是查询原主席树+树状数组的值。 代码: 1 #in 阅读全文
posted @ 2018-05-26 13:04 Schenker 阅读(197) 评论(0) 推荐(0)
摘要:Souvenirs 题意:给你n个数, m次询问, 对于每次一次询问, 求出询问区间内绝对值差值的最小值。 题解:先按查询的右端点从小到大sort一下,然后对于塞入一个数的时候, 就处理出所有左端点到目前位置的点, 然后查询。 首先对于一个区间 [L,now] 和 另一个区间来说 [l+1,now] 阅读全文
posted @ 2018-05-24 18:20 Schenker 阅读(266) 评论(0) 推荐(0)
摘要:Isomorphic Strings 题意:给你一个长度为n的字符串, m次询问, 每次输入一个s, t, l, 是的 [s,s+l-1] 与 [t,t+l-1] 里面的字符一一对应。并且只能一对一 不能一对多也不能多对一。 题解:Hash求解, 对于这段区间, 找到某个字符对应的字符, 将Hash 阅读全文
posted @ 2018-05-23 14:58 Schenker 阅读(256) 评论(0) 推荐(0)
摘要:Pencils and Boxes 题意: n支铅笔,每只笔有一个颜色值, 无限个盒子, 如果一个盒子里面放笔的话, 就至少需要k支笔装在一起,并且一个盒子里面的笔的颜色值只差 不能大于 d。如果满足条件就输出YES,不满足就输出NO 题解: 对于这一条直线来说, B,C的长度为K+1, && va 阅读全文
posted @ 2018-05-22 23:32 Schenker 阅读(254) 评论(0) 推荐(0)
摘要:GRE Words Revenge 题意和思路都和上一篇差不多。 有一个区别就是需要移动字符串。关于这个字符串,可以用3次reverse来转换, 前面部分翻转一下, 后面部分翻转一下, 最后整个串翻转一下就好了。 注意就是多组测试,需要初始化。 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2018-05-20 21:07 Schenker 阅读(219) 评论(0) 推荐(0)
摘要:String Set Queries 题意:给你3种操作,1、加入一个串到集合中。 2、删除集合中的某一个串 3、查询集合中的字符串在给定的字符串种出现几次。(同一个串可重复) 解法:建立多个AC自动机,用二进制分组来处理。 加入给你21个串: 分为 16+4+1,再添加一个串的时候,即21+1, 阅读全文
posted @ 2018-05-20 16:17 Schenker 阅读(236) 评论(0) 推荐(0)
摘要:线段树原理 线段树是一颗二叉树,他的每个节点对应的都是一个区间,主要是通过对区间的分割和合并来修改节点的值, 然后再得到答案。 现在给你一个 目的为求区间和 所造出来的线段树 线段树。如下图所示。 仔细观察,第一二三行方框内的值是他的下面2个子区间的和, 第四行的方框内的数字代表的是自身的值, 蓝色 阅读全文
posted @ 2018-05-18 23:32 Schenker 阅读(875) 评论(4) 推荐(1)
摘要:Kuro and GCD and XOR and SUM 题意:给你一个空数组。 然后有2个操作, 1是往这个数组里面插入某个值, 2.给你一个x, k, s。要求在数组中找到一个v,使得k|gcd(x,v) (即gcd(x,v)是k的倍数,v+x <= k, x ^ v的值最大。 题解:XOR亦或 阅读全文
posted @ 2018-05-18 19:30 Schenker 阅读(200) 评论(0) 推荐(0)
摘要:主席树的实质其实还是一颗线段树, 然后每一次修改都通过上一次的线段树,来添加新边,使得每次改变就改变logn个节点,很多节点重复利用,达到节省空间的目的。 1.不带修改的区间第K大。 HDU-2665 模板题 代码: 阅读全文
posted @ 2018-05-18 16:31 Schenker 阅读(262) 评论(0) 推荐(0)
摘要:Cut 'em all! 题意:求删除了边之后,剩下的每一块联通块他的点数都为偶数,求删除的边最多能是多少。 题解:如果n为奇数,直接返回-1,因为不可能成立。如果n为偶数,随意找一个点DFS建树记录下他的子孙+本身的个数。然后再DFS一下,对于每一个点,他的个数为偶数,就把他与父节点的边隔断, c 阅读全文
posted @ 2018-05-18 11:35 Schenker 阅读(313) 评论(0) 推荐(0)
摘要:Shark 题意:一个研究员观察了一条鲨鱼n天的运动,然后这条鲨鱼他只会往前走,不会回到去过的地方,现在有一个k,,如果鲨鱼当天游过的距离 >= k, 代表的鲨鱼在这天会前往下一个地点,现在求鲨鱼在每个停留的地点所待的时间是一样的,然后在上面那个情况下使得鲨鱼所待得地点数目最多,然后再地点数目的情况 阅读全文
posted @ 2018-05-18 10:58 Schenker 阅读(362) 评论(0) 推荐(0)
摘要:这次div3比上次多一道, 也加了半小时, 说区分不出1600以上的水平。(我也不清楚)。 A. Remove Duplicates 题意:给你一个数组,删除这个数组中相同的元素, 并且保留右边的元素。 代码: 1 #include<bits/stdc++.h> 2 using namespace 阅读全文
posted @ 2018-05-14 16:12 Schenker 阅读(315) 评论(0) 推荐(0)
摘要:A Wrong Subtraction 题意: 对于一个数操作n次,操作如下: 如果末尾是0就将这个数除以10, 如果末尾不是0就将这个数-1, 直接做就好了。 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen 阅读全文
posted @ 2018-05-14 15:27 Schenker 阅读(2183) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-05-10 23:54 Schenker 阅读(56) 评论(1) 推荐(1)
摘要:The Number Games 题意:一共有n个点, n-1条路,第i个点有2^i个人, 然后需要删除k个点,现在需要删除k个点之后,剩下的图为连通图, 并且剩下的人数最多。 题解:我们可以发现如果删除最大的那个点 比 删除其他的所有点损失的人数还要多, 所以我们要贪心的留下标号大的点。我们将删除 阅读全文
posted @ 2018-05-10 22:33 Schenker 阅读(237) 评论(0) 推荐(0)
摘要:Perfect Groups 题意:对于每一个连续的区间,区间内的数至少分成几个组,使得每个组内的数任意2个相乘是一个平方数。 输出的话是每个组数的个数。 题解:对于每一个数都将将他处理成不含平方数因子的数, 这样只有本身乘本身才会是一个平方数。 然后对这个数组处理出这个数前面的位置, 然后 n^2 阅读全文
posted @ 2018-05-09 23:42 Schenker 阅读(285) 评论(0) 推荐(0)
摘要:Posterized 题意:将[0,255] 分成 若干段, 每一段的长度最多为k, 每一个数只能被放进一个段里, 然后每一段的数组都可以被这一段最小的数字表示, 求最小的字典序。 题解:每次一个访问到一个数没被放到段里时, 就在不破环前面分好段的情况下, 尽可能将这个数分到前面段里去。然后将路上的 阅读全文
posted @ 2018-05-09 23:29 Schenker 阅读(212) 评论(0) 推荐(0)
摘要:传送门 题意:本来惯例中文题不解释的, 但是有些人不懂这个题意, 简单的来说, 就是s1每一个的每一个字符都可以和别的字符构成一个子串 == s2。 算了还是惯例中文题意不解释吧。 题解:其实以前写nowcoder的比赛的时候,已经被nowcoder的数据给震惊过了,可是昨天发现有人交随机数过的,有 阅读全文
posted @ 2018-05-05 22:46 Schenker 阅读(184) 评论(0) 推荐(0)