博客园 - Amori
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=682598
2019-08-10T12:39:33Z
Amori
https://www.cnblogs.com/iamamori/
feed.cnblogs.com
https://www.cnblogs.com/iamamori/p/11255872.html
模板暂存 - Amori
1 namespace LCT{ 2 int top,son[maxn][2],fa[maxn],stk[maxn],rev[maxn],val[maxn],tag[maxn]; 3 il void pushup(int x) 4 { 5 tag[x]=x; 6 if(val[tag[x]]>val
2019-07-27T09:15:00Z
2019-07-27T09:15:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】1 namespace LCT{ 2 int top,son[maxn][2],fa[maxn],stk[maxn],rev[maxn],val[maxn],tag[maxn]; 3 il void pushup(int x) 4 { 5 tag[x]=x; 6 if(val[tag[x]]>val <a href="https://www.cnblogs.com/iamamori/p/11255872.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/11232150.html
HDU 6583 Typewriter 题解 - Amori
——本题来自杭电多校第一场 题意:给定一个字符串,主角需要用打字机将字符串打出来,每次可以: 1.花费p来打出任意一个字符 2.花费q来将已经打出的某一段(子串)复制到后面去 对于这种最优化的问题,我们可以考虑dp 设置dp[i]表示已经打出前i个字符的最小花费,这样设状态是没有后效性的。 那么显然
2019-07-23T07:38:00Z
2019-07-23T07:38:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】——本题来自杭电多校第一场 题意:给定一个字符串,主角需要用打字机将字符串打出来,每次可以: 1.花费p来打出任意一个字符 2.花费q来将已经打出的某一段(子串)复制到后面去 对于这种最优化的问题,我们可以考虑dp 设置dp[i]表示已经打出前i个字符的最小花费,这样设状态是没有后效性的。 那么显然 <a href="https://www.cnblogs.com/iamamori/p/11232150.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10858326.html
点分治学习记录 - Amori
学习了一下点分治 POJ 1741(由于poj不支持c++11和bits,改一下即可ac) 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 struct edge 5 { 6 int to,val;
2019-05-13T10:42:00Z
2019-05-13T10:42:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】学习了一下点分治 POJ 1741(由于poj不支持c++11和bits,改一下即可ac) 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 struct edge 5 { 6 int to,val; <a href="https://www.cnblogs.com/iamamori/p/10858326.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10575944.html
Codeforces 1139D(期望dp) - Amori
题意是模拟一个循环,一开始有一个空序列,之后每次循环: 1.从1到m中随机选出一个数字添加进去,每个数字被选的概率相同。 2.检查这个序列的gcd是否为1,如果为1则停止,若否则重复1操作直至gcd为1为止。 求这个序列的长度期望。 也是花了一晚上学习了一下期望dp。 设dp[i]表示当前gcd为i
2019-03-21T19:52:00Z
2019-03-21T19:52:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】题意是模拟一个循环,一开始有一个空序列,之后每次循环: 1.从1到m中随机选出一个数字添加进去,每个数字被选的概率相同。 2.检查这个序列的gcd是否为1,如果为1则停止,若否则重复1操作直至gcd为1为止。 求这个序列的长度期望。 也是花了一晚上学习了一下期望dp。 设dp[i]表示当前gcd为i <a href="https://www.cnblogs.com/iamamori/p/10575944.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10417844.html
P3369 【模板】普通平衡树(Splay) - Amori
题目链接:https://www.luogu.org/problemnew/show/P3369 修改了一下之前的模板,支持重复数值的存储 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct node 4 { 5 int val; 6
2019-02-22T05:30:00Z
2019-02-22T05:30:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】题目链接:https://www.luogu.org/problemnew/show/P3369 修改了一下之前的模板,支持重复数值的存储 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct node 4 { 5 int val; 6 <a href="https://www.cnblogs.com/iamamori/p/10417844.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10126721.html
Codeforces 1093G题解(线段树维护k维空间最大曼哈顿距离) - Amori
题意是,给出n个k维空间下的点,然后q次操作,每次操作要么修改其中一个点的坐标,要么查询下标为[l,r]区间中所有点中两点的最大曼哈顿距离。 思路:参考blog:https://blog.csdn.net/Anxdada/article/details/81980574,里面讲了k维空间中的最大曼哈
2018-12-16T07:16:00Z
2018-12-16T07:16:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】题意是,给出n个k维空间下的点,然后q次操作,每次操作要么修改其中一个点的坐标,要么查询下标为[l,r]区间中所有点中两点的最大曼哈顿距离。 思路:参考blog:https://blog.csdn.net/Anxdada/article/details/81980574,里面讲了k维空间中的最大曼哈 <a href="https://www.cnblogs.com/iamamori/p/10126721.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10068831.html
Codeforces 1088E 树形dp+思维 - Amori
比赛的时候看到题意没多想就放弃了。结果最后D也没做出来,还掉分了,所以还是题目做的太少,人太菜。 回到正题: 题意:一棵树,点带权值,然后求k个子连通块,使得k个连通块内所有的点权值相加作为分子除以k的值最大,如果这样的最大值有多个,就最大化k。 赛后看了看别人的代码仔细想了一想,还是挺容易的。 首
2018-12-04T17:37:00Z
2018-12-04T17:37:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】比赛的时候看到题意没多想就放弃了。结果最后D也没做出来,还掉分了,所以还是题目做的太少,人太菜。 回到正题: 题意:一棵树,点带权值,然后求k个子连通块,使得k个连通块内所有的点权值相加作为分子除以k的值最大,如果这样的最大值有多个,就最大化k。 赛后看了看别人的代码仔细想了一想,还是挺容易的。 首 <a href="https://www.cnblogs.com/iamamori/p/10068831.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10033434.html
图论相关算法模板 - Amori
先贴代码,开坑待填 Tarjan算法: 强连通分量(边双联通分量):(堆栈存点) 1 int head[maxn]; 2 struct edge 3 { 4 int to,nxt,from; 5 }e[50005]; 6 int cnt; 7 inline void addedge(int u,in
2018-11-28T09:26:00Z
2018-11-28T09:26:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】先贴代码,开坑待填 Tarjan算法: 强连通分量(边双联通分量):(堆栈存点) 1 int head[maxn]; 2 struct edge 3 { 4 int to,nxt,from; 5 }e[50005]; 6 int cnt; 7 inline void addedge(int u,in <a href="https://www.cnblogs.com/iamamori/p/10033434.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/10011987.html
后缀数组(SA)学习记录 - Amori
一只只会后缀自动机却不会后缀数组的弱鸡做了一下HDU - 1403,结果SAM被卡内存了,然后学习了一下SA。 以下两道题都是求LCS,区别在于字符串长度。 参考blog:https://www.cnblogs.com/victorique/p/8480093.html HDU - 1403 1 #
2018-11-24T06:17:00Z
2018-11-24T06:17:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】一只只会后缀自动机却不会后缀数组的弱鸡做了一下HDU - 1403,结果SAM被卡内存了,然后学习了一下SA。 以下两道题都是求LCS,区别在于字符串长度。 参考blog:https://www.cnblogs.com/victorique/p/8480093.html HDU - 1403 1 # <a href="https://www.cnblogs.com/iamamori/p/10011987.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/9982915.html
线段树+区间合并学习记录 - Amori
学习了线段树的新姿势,记录一下。 参考blog:https://blog.csdn.net/sunyutian1998/article/details/79618316 HDU 1540: query的时候m-ql+1和qr-m写成了m-l+1、r-m,wa了几发之后才找到bug。 错误样例: 10
2018-11-19T06:20:00Z
2018-11-19T06:20:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】学习了线段树的新姿势,记录一下。 参考blog:https://blog.csdn.net/sunyutian1998/article/details/79618316 HDU 1540: query的时候m-ql+1和qr-m写成了m-l+1、r-m,wa了几发之后才找到bug。 错误样例: 10 <a href="https://www.cnblogs.com/iamamori/p/9982915.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/9965527.html
Codeforces 1062E 题解 - Amori
给出一棵有根树,1为根结点,接下来q次询问,每次给出一个[l,r]区间,现在允许删掉[l,r]区间内任何一个点,使得所有点的最近公共祖先的深度尽可能大,问删掉的点是哪个点,深度最大是多少。 做法: 线段树维护区间dfs序的最大值,最小值。 首先,区间的LCA等价于区间dfs序的最小值和最大值对应的两
2018-11-15T11:11:00Z
2018-11-15T11:11:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】给出一棵有根树,1为根结点,接下来q次询问,每次给出一个[l,r]区间,现在允许删掉[l,r]区间内任何一个点,使得所有点的最近公共祖先的深度尽可能大,问删掉的点是哪个点,深度最大是多少。 做法: 线段树维护区间dfs序的最大值,最小值。 首先,区间的LCA等价于区间dfs序的最小值和最大值对应的两 <a href="https://www.cnblogs.com/iamamori/p/9965527.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/iamamori/p/9852869.html
ZOJ Monthly, January 2018 训练部分解题报告 - Amori
A是水题,此处略去题解 B - PreSuffix ZOJ - 3995 (fail树+LCA) 给定多个字符串,每次询问查询两个字符串的一个后缀,该后缀必须是所有字符串中某个字符串的前缀,问该后缀最长时,是多少个字符串的前缀。 思路:对所有串构造ac自动机,根据fail指针的性质,a节点的fail
2018-10-25T13:01:00Z
2018-10-25T13:01:00Z
Amori
https://www.cnblogs.com/iamamori/
【摘要】A是水题,此处略去题解 B - PreSuffix ZOJ - 3995 (fail树+LCA) 给定多个字符串,每次询问查询两个字符串的一个后缀,该后缀必须是所有字符串中某个字符串的前缀,问该后缀最长时,是多少个字符串的前缀。 思路:对所有串构造ac自动机,根据fail指针的性质,a节点的fail <a href="https://www.cnblogs.com/iamamori/p/9852869.html" target="_blank">阅读全文</a>