摘要:
NOIP2016D1T2...... 我连D1T2都需要看题解才能做了...... AFO...... 题目传送门 解析: 考虑有一个玩家,其起点为$u$,终点为$v$。 则其路径可以分成两部分,一部分为$u->lca(u,v)$,另一部分为$lca(u,v)->v$ 对于前半部分,可以对点x(x在 阅读全文
摘要:
树上莫队模板题。 使用欧拉序将树上路径转化为普通区间。 之后莫队维护即可。不要忘记特判LCA 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 # 阅读全文
摘要:
设当前询问端点为$l,r$,则目前有$n$中不同颜色的袜子,分别是$a_1,a_2...a_n$,第$i$种颜色的袜子有$cnt_i$只 则抽到两只袜子的情况数有$cnt_1*(cnt_1-1)/2+cnt_2*(cnt_2-1)/2+......+cnt_n*(cnt_n-1)/2$种。 化简:$ 阅读全文
摘要:
考虑模拟退火。 题目要我们找到一个点,使得整个系统平衡。 这个要求等价于让我们找到一个点,使得系统总能量最小。 我们退火出一个点,然后计算其能量即可。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<alg 阅读全文
摘要:
毒瘤莫队卡常题,卡了一早上的常数,才开O2勉强过。 带修莫队模板题。 普通莫队要离线下来做,遇到这种带修改的题目直接就萎了,但是全国广大的OIer们在莫队的基础上,发明了带修莫队这种玄学算法。 具体来说就是给修改和求值打上时间戳,然后在普通莫队双指针的基础上增加一个指针tim指向时间,在这一个维度上 阅读全文
摘要:
题目传送门 维护一个区间内不同数的个数,最直观的想法是直接排序后用树状数组维护即可。但是我们发现n只有3e4,于是我们想到了可以拿一个$O(n\sqrt{n})$的莫队维护。关于莫队算法如果有不知道的或者不会写的,建议看一看这位大佬的博客 1 #pragma GCC optimize(3) 2 #i 阅读全文
摘要:
一、前言 本博客适合已经学会欧几里得算法的人食用~~~ 二、扩展欧几里得算法 为了更好的理解扩展欧几里得算法,首先你要知道一个叫做贝祖定理的玄学定理: 即如果a、b是整数,那么一定存在整数x、y使得$ax+by=gcd(a,b)$。 通俗的说就是:如果$ax+by=c$有解,那么$c\%gcd(a, 阅读全文
摘要:
考虑二分答案+可持久化线段树。 对于这种最大化最小值的问题,通常使用二分来解决。于是我们想到了对果汁按其d值排序。然后使用下标为费用的一棵可持久化线段树来维护费用。 check函数可以这样写:如果我们发现以mid为根的线段树本身还不够li升,就可以直接返回0了,否则贪心地查询其最小花费,如果也符合要 阅读全文
摘要:
今天上午省选字符串......只会KMP、连hash都不会的我被大佬虐惨了......于是我要发奋图强学习字符串,学习字符串当然就要从Trie树这种可爱的数据结构开始啦!!! 一、什么是Trie树??? 字典树,顾名思义,用来保存一些字符串。 二、Trie树的优势/用途??? 那么就有人会问了:保存 阅读全文
摘要:
CDQ用来解决分治时左半部分对右半部分造成影响的问题。 CDQ分治的经典问题是三维偏序问题。 要想解决三维偏序问题,首先你要知道什么是偏序。(废话) 一维偏序: 给出直线上的n个点,问有多少对点满足xi<=xj 对于这个问题,直接排序就可以了。 二维偏序: 给定平面内的n个点,问有多少对点满足xi< 阅读全文