随笔分类 -  数据结构

摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3397 题目大意: 0 a b表示a-b区间置为0 1 a b表示a-b区间置为1 2 a b表示a-b区间中的0变成1,1变成0 3 a b表示a-b区间中的1的数目 4 a b表示a-b区间中最长连 阅读全文
posted @ 2018-08-31 17:35 _努力努力再努力x 阅读(270) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3333 题目大意: 给出一数组,以及m个查询区间,每次查询该区间不同数字的和。相同数字只加一次。 解题思路: 离线区间,按照区间右端点进行排序。 这样可以从左到右扫一遍,用尺取法一个一个将数字放入树状数 阅读全文
posted @ 2018-08-31 15:02 _努力努力再努力x 阅读(159) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/FZU-1608 题目大意: 长度n,m次操作;每次操作都有三个数:a,b,c;意味着(a,b]区间单位长度的价值为c,若某段长度不曾被操作,则意味着该长度价值为0,若有一段长度有多个价值,则选取最大的。(多组输入)请输出(0, 阅读全文
posted @ 2018-08-30 21:35 _努力努力再努力x 阅读(253) 评论(0) 推荐(0)
摘要:查询区间最小值问题(查询区间gcd也可以) d[i][j]表示从i开始,长度为2^j的最小值 递推式:d[i][j] = min(d[i][j - 1] , d[i + 2^(j - 1)][j - 1]) 初始化:d[i][0] = a[i] 预处理O(nlog(n)) 查询O(1) 阅读全文
posted @ 2018-08-07 15:27 _努力努力再努力x 阅读(141) 评论(0) 推荐(0)
摘要:详解:https://blog.csdn.net/yitongjun/article/details/53193724 一、区间操作,只有add 2、区间操作,只有set 阅读全文
posted @ 2018-08-01 21:38 _努力努力再努力x 阅读(174) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/POJ-3476 题目大意: 一串长度为N的彩球,编号为1-N,每个球的颜色为R,G,B,给出它们的颜色,然后进行如下操作: 每次消除连续颜色最长的最左端的一串,剩下的球如果分成两串,就把左右两串连接起来,输出每次消除的球的颜色 阅读全文
posted @ 2018-07-19 17:02 _努力努力再努力x 阅读(203) 评论(0) 推荐(0)
摘要:很不错的学习链接:https://blog.csdn.net/v_july_v/article/details/7041827 具体思路就看上面的链接就行了,这里只放几个常用的模板 问题描述: 给出字符串a和b,求a中匹配b的所有下标 KMP另一版本:感觉更快 KMP算法扩展: https://we 阅读全文
posted @ 2018-07-18 23:01 _努力努力再努力x 阅读(231) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/URAL-1019 题目大意: 一个0~1e9的区间,初始都是白的,现进行N次操作,每次将一段区间图上一中颜色。最后问说连续最长的白色区间。 解题思路: 先离散化,之后可暴力,或者用线段树维护 离散化后,染色时候应注意从第二个点 阅读全文
posted @ 2018-07-17 21:42 _努力努力再努力x 阅读(230) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/ZOJ-3278 题目大意: 给出两个数列A和B,长度分别为N,M (1<=N, M<=10^5, 1<=Ai, Bi<=10^5),求Cij = Ai * Bj中第K大的数 解题思路: 二分第k大,然后枚举a[i],二分b[i 阅读全文
posted @ 2018-07-17 13:18 _努力努力再努力x 阅读(244) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/UVA-1152 题目大意: 给出4个数组,每个数组有n个数,问有多少种方案在每个数组中选一个数,使得四个数相加为0. n <= 4000 解题思路: 两重循环求出a + b的所有情况 两重循环求出-c - d的所有情况 枚举a 阅读全文
posted @ 2018-07-16 23:14 _努力努力再努力x 阅读(148) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/ZOJ-3261 题目大意: 给你一些点,还有一些边,每个点上都有一个权值,然后有一些询问,分为两种,query a 询问与a直接或者间接想连的点中最大权值的是那个点,输出那个点,如果那个点的权值小于等于a的权值,那么就输出-1 阅读全文
posted @ 2018-07-16 21:54 _努力努力再努力x 阅读(223) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/ZOJ-3279 题目大意: 有1到n 那个level 每一个level有a[i]只蚂蚁两种操作 p a b 把第a个level的蚂蚁数量改成b q a 查询第a只蚂蚁在哪个level里。 解题思路: 用树状数组动态维护前缀和, 阅读全文
posted @ 2018-07-16 21:46 _努力努力再努力x 阅读(142) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/CodeForces-19D 题目大意: n个操作,在200000*200000的平面上加删点 find 严格在坐标右上角,x最小,再y最小的点 解题思路: 线段树,离散化x坐标,线段树中保存y最大值,这样可以找到严格大于点x' 阅读全文
posted @ 2018-06-01 15:07 _努力努力再努力x 阅读(402) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3074 题目大意: 给一些数,进行点更新或者是区间计算乘积 解题思路: 裸的线段树,注意空间开大点 阅读全文
posted @ 2018-05-22 21:38 _努力努力再努力x 阅读(163) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5475 题目大意: 给X赋初值1,然后给Q个操作,每个操作对应一个整数M; 如果操作是1则将X乘以对应的M, 如果是2则除以第M次操作对应的M',求每次操作后X的值对给定值取摸的结果。 解题思路: 第一 阅读全文
posted @ 2018-05-15 12:31 _努力努力再努力x 阅读(312) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所有的数的最小公倍数modp G :查询一个区间的所有的数的最大公约数modp 修改 C :将给定位置 阅读全文
posted @ 2018-05-14 00:58 _努力努力再努力x 阅读(595) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/POJ-3484 题目大意: 给出一系列等差数列,给出第一项和最后一项和公差 这些等差数列中每个数出现的次数只有一个是奇数,找出这个数,并求出其出现的次数 解题思路: 二分枚举这个数,但是只是二分这个数字的话,找不到二分的条件。 阅读全文
posted @ 2018-05-12 23:33 _努力努力再努力x 阅读(290) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1759 题目大意: N个灯泡离地H_i,满足H1 = A ,Hi = (Hi-1 + Hi+1)/2 – 1,HN = B ,求最大B 解题思路: 如果二分B,会变成无从下手,发现如果求出H2,那么就可以之后的所有高度 阅读全文
posted @ 2018-05-12 12:53 _努力努力再努力x 阅读(150) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/problem/POJ-3662 题目大意: 求一条路径从1到n使第k+1大的边最小。 解题思路: 二分答案mid,当原边权小于等于mid新边权为0,否则新边权为1. 求最短路,若小于等于k说明满足条件 注意:最开始的l必须是0,而不是这些边中 阅读全文
posted @ 2018-05-12 12:13 _努力努力再努力x 阅读(205) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4288 题目大意: 维护一个有序数列{An},有三种操作: 1、添加一个元素。 2、删除一个元素。 3、求数列中下标%5 = 3的值的和 解题思路: 线段树不支持动态的添加,删除操作,所以本题用了离线处 阅读全文
posted @ 2018-05-12 01:01 _努力努力再努力x 阅读(163) 评论(0) 推荐(0)