自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Problem A. Ascending Rating HDU - 6319

http://acm.hdu.edu.cn/showproblem.php?pid=6319对于每个i 题目要求出[i,i+m-1]区间内以第i项为首的lis的长度和最后一项 1e7只能是线性做法 而且还需要平移区间所以应该想到单调队列 从后向前维护一个单调递减的队列即可#include <bits/stdc++.h>using namespace std;#defi...

2018-07-31 14:43:06 153

原创 Problem M. Walking Plan HDU - 6331

http://acm.hdu.edu.cn/showproblem.php?pid=6331f[k][i][j]=min(f[k][i][j],f[k+1][i][j]) 这个式子是关键 通过该式子可以n^3的求出从i到j恰好走几步的最短距离可以跑2e4次n^3 从后向前取最小值 即f[k][i][j]=min(f[k][i][j],f[k+1][i][j])但是查询的k是1e4 还需...

2018-07-31 14:37:20 180

原创 Legacy CodeForces - 787D

http://codeforces.com/problemset/problem/787/D线段树建图纯模板题#include <bits/stdc++.h>using namespace std;#define ll long long#define N 0x3f3f3f3f3f3f3f3fstruct node1{ int v; ll w; ...

2018-07-30 09:17:42 334

原创 Sasha and Array CodeForces - 719E

http://codeforces.com/problemset/problem/719/E像等差数列一样 斐波那契数列也满足可加性 所以每个区间只维护前两项即可 给每个区间项数加x等于对每个点把斐波那契矩阵乘x次 线段树里维护前两项 并把laz标记做成矩阵形式即可一开始智障 把x当参数传进update 每遇到一次目标区间就要做一次矩阵快速幂 喜获一T#include <cst...

2018-07-29 19:32:15 159

原创 Sliding Window POJ - 2823

http://poj.org/problem?id=2823单调栈和队列主要思想差不多 就是单调队列会从首部弹出元素 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct node{ int id; int val;...

2018-07-29 16:15:27 166

原创 Hash Function 牛客网多校

https://www.nowcoder.com/acm/contest/142/J这题竟然卡memset.. 一开始t了以为数组开小了 就往大了搞..首先是判矛盾 如果i位置上的一个数ary[i] 本来应该在ary[i]%n=j处 那j到i之间肯定不能有负数 前缀和判断一下如果暂时没矛盾 那就将从j到i-1的位置都向i连一条边 因为ary[i]这个数会出现在i这个位置就是因为j到i-...

2018-07-29 14:52:37 249

原创 Dirt Ratio HDU - 6070

http://acm.hdu.edu.cn/showproblem.php?pid=6070题目要求区间颜色数与区间长度的最小比二分这个最小比值 但是怎么决定下一步是向左还是向右是关键设区间颜色数为size(l,r) 那么我们就看是否存在这样一个区间满足size(l,r)/(r-l+1)<=m m是二分枚举的答案这个式子化简得 size(l,r)+l*m<=(r+1)*...

2018-07-29 10:44:38 167

原创 Blue Mary开公司 HYSBZ - 1568

https://www.lydsy.com/JudgeOnline/problem.php?id=1568李超线段树模板博客https://blog.csdn.net/flere825/article/details/76283734#include <cstdio>#include <cstring>#include <algorithm>...

2018-07-28 23:08:51 192

原创 Dynamic len(set(a[L:R])) UVA - 12345

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3767动态查询区间内有多少不同颜色用set维护每种颜色出现的位置 set每次插入或擦除后仍满足单调性对于[l,r]区间内有多少不同颜色 就看有多少位置i 其上颜色clr[...

2018-07-28 09:37:04 537

原创 Magnificent Tree - 牛客网

https://www.nowcoder.com/acm/contest/106/H分治就是讲大问题划分成许多小问题 也就是把1到num这些操作序列 划分成许多小序列 对每个[l,r]的小序列 考虑l,m]这个小序列对[m+1,r]这个序列的影响 在这里即是看左子序列的修改会对右子序列造成什么影响对每个子问题 右区间的查询序要关心的是左区间当中在自己坐标范围内的修改 以x或y两者中的一个建...

2018-07-26 08:43:18 291

原创 敌兵布阵 HDU - 1166

http://acm.hdu.edu.cn/showproblem.php?pid=1166cdq入门https://www.cnblogs.com/mlystdcall/p/6219421.html#include <bits/stdc++.h>using namespace std;struct node{ int tp; int pos; ...

2018-07-25 09:17:50 231

原创 T9 HDU - 1298

http://acm.hdu.edu.cn/showproblem.php?pid=1298建两棵字典树 一棵用小写字母建 用来维护所有包括当前前缀的字符串的出现概率之和 另一棵用数字建看当前数字前缀下根据第一棵字典树应该用哪个字母前缀表示#include <bits/stdc++.h>using namespace std;struct node{ node...

2018-07-24 19:27:05 191

原创 What Are You Talking About HDU - 1075

http://acm.hdu.edu.cn/showproblem.php?pid=1075用map也可以做的SB题 数据读入真的有毒 还不给数据范围将地球文先存到二维字符数组 用火星文建树 将火星文对应的地球文的指针赋给树上对应的节点#include <cstdio>#include <cstring>#include <algorithm>...

2018-07-24 15:41:26 212

原创 again and again QDU - 65

https://qduoj.com/problem/65提前把所有字符串按字典序排序 然后插入字符串时比较一下 维护以当前节点结尾字符串的所有后缀中的最短的那个字符串#include <bits/stdc++.h>using namespace std;#define N 0x3f3f3f3fstruct node1{ char ch[30];};st...

2018-07-24 13:00:34 254

原创 Play With Sequence HDU - 3971

http://acm.hdu.edu.cn/showproblem.php?pid=3971又学到了新姿势 居然还能每隔一段时间排个序...通过维护区间最大最小值来剪枝 但肯定不够如果一个数列是有序的 那这样维护区间最值 就相当于维护区间端点了 从而有logn得复杂度 所以可以每隔一定循环次数就把数列排序重新建树#include <bits/stdc++.h>usi...

2018-07-24 08:37:47 216

原创 Robotic Sort HDU - 1890

http://acm.hdu.edu.cn/showproblem.php?pid=1890伸展树模板博客:https://www.cnblogs.com/wxgblogs/p/5506234.htmlhttps://blog.csdn.net/wr132/article/details/50599747http://www.cnblogs.com/vamei/archive/...

2018-07-22 20:17:52 209

原创 Gorgeous Sequence HDU - 5306

http://acm.hdu.edu.cn/showproblem.php?pid=5306​​​​​​和hysbz4355一样 维护最大最小值来剪枝#include <bits/stdc++.h>using namespace std;#define N 0x3f3f3f3f3f3f3f3f#define ll long longstruct node{ ...

2018-07-22 12:40:22 185

原创 Play with sequence HYSBZ - 4355

https://www.lydsy.com/JudgeOnline/problem.php?id=4355第二问要取最大值不好处理 一开始想的是只有当前区间所有数都一样时才进行加操作 WA...应该是T啊...看了正解 感觉时间复杂度很玄学 首先根据题意发现 如果区间内有零存在 那一定是以最小值的形式存在 所以要记录最小值及其数量 通过维护区间最小和次小值来剪枝具体看这篇博客https...

2018-07-21 10:05:39 359

原创 Minimum Sum HDU - 3473

http://acm.hdu.edu.cn/showproblem.php?pid=3473一开始用主席树 在MLE与TLE之间来回试探..划分树存模板#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define ll long long...

2018-07-20 16:10:54 149

原创 GCD HDU - 5930

http://acm.hdu.edu.cn/showproblem.php?pid=5930先预处理出整个区间有多少个gcd 统计每个gcd出现多少次然后还有一个巧妙的地方就是 对每个把tar位置的数改为val的修改 把[1,tar]和[tar,n]这左右边各有多少gcd值不同的以tar为右左端点的区间找出并记下来 因为这些区间数量很少 所以用两层for循环处理 对于一个gcd的出现次数 ...

2018-07-20 11:44:26 328

原创 Maximum Element In A Stack 计蒜客

https://nanti.jisuanke.com/t/28401开两个栈 一个是单调栈 每个元素记录操作次数与数值 另外一个栈单纯记录操作次数若需push一个数 如果比单调栈栈顶元素大就推进去 pop时就看另个栈的栈顶的操作次数是否和单调栈栈顶相同 相同的话说明现在该把这个最大值拿掉了 然后新的栈顶就是之前的次大值 现在的最大值 中间没有被推入单调栈的元素根本没有价值不用管...

2018-07-18 09:03:14 1552

原创 旅行comf HYSBZ - 1050

https://www.lydsy.com/JudgeOnline/problem.php?id=1050​​​​​​最小生成树变形 没想到.. 一开始想的枚举最小二分最大 但是这些边无法确定走不走枚举每条边作为最小值 然后用所有大于等于该值的边跑最小生成树 当起点终点连通时就退出 这样第一和最后一条被选中的边就是最小和最大边 #include <cstdio>#inc...

2018-07-17 20:36:23 234

原创 口算训练 HDU - 6287

http://acm.hdu.edu.cn/showproblem.php?pid=6287这题本来可以用二维数组搞一个所有数的质因子及其次幂的前缀和 然后每次线性枚举一遍素因子 但是空间爆炸 用主席树的话每次只需更新几条链 牺牲了时间复杂度 增加了一个log 虽然这样用主席树空间耗费也大 但是题目时空限制都很松#include <cstdio>#include <v...

2018-07-17 18:58:02 248

原创 Stars in Your Window POJ - 2482

http://poj.org/problem?id=2482和hdu5091基本一样 做法也差不多但是叶节点的选择不太一样 if(l+1==r) return;这道题要求如果星星在边框上就不算 所以肯定不能把边框对齐某个星星 而应该介于两颗星星之间的那个线段上#include <cstdio>#include <cstring>#include &lt...

2018-07-17 09:33:14 209

原创 Beam Cannon HDU - 5091

http://acm.hdu.edu.cn/showproblem.php?pid=5091把所有点的纵坐标打入到x轴上的对应位置上 然后双指针i-w-1和i向后扫过去 一个减一个加减或加指的就是 假设该点纵坐标为y 矩形高度为h 就将[Y,Y+H]区间的最大值减或加1 然后用tree[1].val更新答案这时线段树每个叶子节点维护的值的含义就不再是对应高度有多少个点了 而是将给定矩形...

2018-07-16 22:26:34 149

原创 Smart Software Installer HDU - 5098

http://acm.hdu.edu.cn/showproblem.php?pid=5098输入坑爹 算是存个模板..加入a: b 那就建一条从b到a的边 题目就是找以入度为零的点为起点的含有最多需要重启的节点的一条链 以0为超级源点 向所有入度为零的点建一条边 如果哪个节点需要重启 那就把点权设为1 然后跑一边spfa既然题目已经给定关系 那其实不管从哪开始都一样 权值最大的那条链是...

2018-07-16 21:31:42 170

原创 Trail Maintenance LightOJ - 1123

点击打开链接每次加一条边 在加新边后的图中求最小生成树先想到的就是把前i条边全部排序 但是m很大会超时发现n很小 每次求出最小生成树时有用的边最多(n-1)条 所以每次只给n条边排序就好 求完生成树后把没用的那条边换成新边 再继续#include <cstdio>#include <cstring>#include <algorithm>using nam...

2018-07-16 11:29:02 210

原创 Interesting Array CodeForces - 483D

点击打开链接要求一个区间内的数相与等于一个值 那就是说这个值的某个二进制位如果是1 那这个区间内所有数对应为都要是1 即对区间内每一个数都做或运算 线段树维护一下 如果是0 那这个区间内所有数对应为至少有一个0 不用管q次都更新完以后 再统一把每个区间都查询一下 看是否和一开始给定的值一样 不一样则说明有矛盾#include <bits/stdc++.h>using n...

2018-07-15 15:33:08 172

原创 Just h-index HDU - 6278

点击打开链接对每次询问 找出最大的h 使[l,r]区间内有至少h个数大于等于h 明显有单调性 二分h值即可#include <bits/stdc++.h>using namespace std;struct node{ int l; int r; int val;};node tree[2000010];int ary[100010],...

2018-07-15 09:30:48 210

原创 DZY Loves Colors CodeForces - 445E

点击打开链接线段树剪枝 当区间内只有一种颜色时才进行更新 虽然乍一看对复杂度不是很好 仔细想想 虽然每次把一段区间染成同一种颜色 但以后再访问这一段里的区间时就可以直接返回#include <bits/stdc++.h>using namespace std;#define ll long longstruct node{ int l; int r;...

2018-07-14 21:59:29 244

原创 Typeface Design HihoCoder - 1074

点击打开链接第一个和最后一个数是必须要标记的 这就是一个突破口 然后找区间[2,n-1]的最小值是否小于第一与最后一个数的最小值 若小于的话则该数必须要标记 然后从该数的位置将区间一分为二 否则查最大值是否大于第一与最后一个数的最大值这样走的每一步都是基于当前情况的必然选择 且是唯一正确选择#include <bits/stdc++.h>using namespace ...

2018-07-14 08:52:53 140

空空如也

空空如也

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

TA关注的人

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