摘要: 解这类方程的一个重要思想: 降次 这类方程一般长这样: $$x^2+ax+b=y^2$$ 因为$x,y$都是整数,可以设$y=x+t$,其中$t$也是一个整数。 将其带入并展开,可以得到: $$x^2+ax+b=x^2+2tx+t^2$$ 这样就可以消去二次项了: $$ax+b=2tx+t^2$$ 阅读全文
posted @ 2019-10-21 09:19 lyyi2003 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 注意:下文中vector数组指的是 每个数组元素都是一个vector的数组 大部分有序STL容器都重载了小于号,且比较方式是对容器中元素进行字典序比较。 此时如果你写$bool\ operator using namespace std; define N 100007 vector a[N]; i 阅读全文
posted @ 2019-10-18 09:57 lyyi2003 阅读(392) 评论(0) 推荐(0) 编辑
摘要: $swap$的方式有 \(S1.swap(S2)\) 或 \(swap(S1,S2)\) $vector,map,set,deque$的$swap$复杂度:\(O(1)\) $priority_queue,queue,stack$的$swap$复杂度:\(O(n)\) 但是在开启$c++11$的情况 阅读全文
posted @ 2019-10-17 22:30 lyyi2003 阅读(1867) 评论(0) 推荐(4) 编辑
摘要: 都是很好的题: "loj6043 蛐蛐国的修墙方案" "bzoj4722 由乃" "cf1105E Helping Hiasat" (状压dp+折半搜索,详见提交记录) 阅读全文
posted @ 2019-09-27 21:26 lyyi2003 阅读(156) 评论(0) 推荐(0) 编辑
摘要: bzoj题面 bzoj数据 阅读全文
posted @ 2019-09-27 18:53 lyyi2003 阅读(1280) 评论(0) 推荐(0) 编辑
摘要: 题面 官方题解 题解概述: 定义符号A~B表示序列A是序列B的子序列,A!~B反之。 设操作序列为I,则有A~I,B!~I,C~I,D!~I。 可得出条件①B!~C且D!~A,所以我们只要讨论满足这个条件的情况。 分情况讨论: c1=c2,则可以进行操作c1,得到的状态仍满足条件①; c1!=c2, 阅读全文
posted @ 2019-09-10 20:55 lyyi2003 阅读(355) 评论(0) 推荐(1) 编辑
摘要: 题面 看了题解的推导发现其实并不复杂,但你决不能想到生成函数上去 其实如果把式子列出来的话,不需要怎么推导就能算出来,关键是要想到这个巧妙的式子。 设$b_i=a_{i+1}-a_(1\leq i\leq k-1)$ 答案就是 \(\sum_{b_1=1}^{m}\sum_{b_2=1}^{m}.. 阅读全文
posted @ 2019-08-20 20:01 lyyi2003 阅读(113) 评论(0) 推荐(0) 编辑
摘要: LIS问题: 设$f[i]$为以$a[i]$结尾的最长上升子序列长度,有: $$f[i]=f[j]+1(j using namespace std; define N 5007 int f[N],a[N],b[N]; int main() { int i,j,n; scanf("%d",&n); f 阅读全文
posted @ 2019-08-09 22:44 lyyi2003 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 思想类似于哈希,但是引入了随机化,每个位置的权值不再是一个数的次幂,并且需要判同的东西也不仅限于字符串,在有的时候可以巧妙的解决问题(也能解决字符串哈希)。 "一道例题" 随机化解决 "字符串哈希" 的代码: include using namespace std; define N 2007 de 阅读全文
posted @ 2019-08-04 22:17 lyyi2003 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 本题空间很小,那些O(nlogn)的树上lca算法在这里不顶用了,可以考虑树分块。 本题的树分块是基于深度的,即按深度每$\sqrt n$分一块,然后一块一块往上跳,一直跳到lca处。 对于这题,有这样几种做法: 考虑在树上选择若干关键点,每次求lca先往上跳到最近的关键点处,然后再一个一个关键点往 阅读全文
posted @ 2019-08-04 20:38 lyyi2003 阅读(259) 评论(0) 推荐(0) 编辑