摘要: 学了新算法,不管怎么样也要记录一下吧 笛卡尔树有以下两个特点:1.是一个堆结构 2.它的中序遍历顺序等于原序列的顺序 性质: [i,j]区间的最值等于lca(i,j)的值 如何构建? 首先先建一个0号节点,a[0]=inf 然后构建一个栈,来维护右链 栈底为root,s[top]是s[top-1]的 阅读全文
posted @ 2018-09-06 13:49 longint 阅读(120) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-08-22 13:38 longint 阅读(5) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-08-21 19:57 longint 阅读(3) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-08-16 21:48 longint 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 开始想了一个七维dp,发现会算重 然后就去看题解了(真颓,没希望了) 显然直接做没啥希望,考虑最基本的容斥 用10^n-不包含(X,Y,Z)的方案数 考虑一个神奇的状压1用001表示,2用010表示,3用100表示。即i用(1<<(i-1))表示 在这里加法操作也有其他的定义 比如:我们"2+3”表 阅读全文
posted @ 2018-08-16 20:23 longint 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 考虑一个转化 我们用p[i]表示权值为i的在原序列中所在的位置为p[i] 这样我们得到了一个p序列 显然的一点原序列操作后字典序最小等价于让p序列操作后字典序最小 我们考虑p序列怎么进行操作 显然的相当于可以交换任意两个相邻的数,前提为两个差值>=k 显然这种操作相当于拓扑排序 考虑i和j(指的是权 阅读全文
posted @ 2018-08-16 20:10 longint 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 原问题等价于求 for i=1;i<n;i++ for j=i+1;j<=n;j++ do ans=ans+C(a[i]+a[j]+b[i]+b[j],a[i]+a[j]) 显然这个式子是n^2的很不资瓷 我们发现a[i],b[i]都很小所以考虑组合性质优化 我们发现这个式子其实相当于求从(-ai, 阅读全文
posted @ 2018-08-16 19:58 longint 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 显然我们有一个比较简单的构图 对于s[1...n]为回文串,我们可以1->n连边,2->n-1连边以此类推(这里的连边都是无向边) 显然如果n个点在同一个联通块中那么是合法的 首先我们先考虑无解情况 显然对于一张n个点的图,如果边数<n-1那么这张图一定不连通 所以如果a和b加起来奇数值大于2了,那 阅读全文
posted @ 2018-08-15 21:47 longint 阅读(147) 评论(0) 推荐(0) 编辑
摘要: AGC的题目果然都牛逼啊 像我这种智力不够的人完全做不动啊 这题考虑K是奇偶不同的情况 K为偶数枚举每一个点作为直径的中点(中心) K为奇数,枚举每条边作为直径中间边 然后往下K/2层,>K/2层的都扔掉即可 因为中心到直径两端相同,所以必须<=K/2 代码如下: 阅读全文
posted @ 2018-08-15 21:00 longint 阅读(377) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-08-15 18:26 longint 阅读(4) 评论(0) 推荐(0) 编辑