上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 53 下一页
摘要: 最短路 吐槽一下。。。最先开始写了个地图哈希,6kb,然后不是正解,又写了个spfa,4kb,还是不对,无奈抄标程,结果把spfa改成dijiestra就对了。。。 由于只有两个变量,所以我们设一个四维状态,d[x0][y0][x1][y1],然后就可以跑最短路了。如果是多维的话就得用哈希了。 但是 阅读全文
posted @ 2017-07-09 10:28 19992147 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 状压dp+凸包 并没有看出来凸包的性质 首先答案一定在凸包上,然后每个凸包的角加起来是一个圆,那么就相当于凸包周长加一个圆了。然后预处理,再状压dp计算即可。 阅读全文
posted @ 2017-07-09 01:11 19992147 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 分类 首先我们要对询问分类,如果相差log级别就第一种询问,否则第二种。 第一种直接暴力lower_bound,复杂度玄学 第二种归并,复杂度玄学 但是就是过了。感觉很容易卡。 #include<bits/stdc++.h> using namespace std; const int N = 40 阅读全文
posted @ 2017-07-07 00:24 19992147 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 二分+高斯消元 我们利用物理里的势能来表示,每个点有一个势能h,再由流量守恒可以得到deg[x]*h[x]=sigma(h[y]) 如果x,y之间有边。这个式子是由流量守恒推出的,所以当x=1或n是不满足这个方程的。 每次二分n的势能,然后把1和n赋值,高斯消元,检验答案。 势能保证了到达一个点所有 阅读全文
posted @ 2017-07-05 11:02 19992147 阅读(379) 评论(0) 推荐(0) 编辑
摘要: dp+优化 很明显可以用单调队列优化。 记录下自己犯的sb错误: 数组开小,sum没搞清。。。 #include<cstdio> #include<cstring> using namespace std; const int N = 110, M = 10010; int n, m, k, ans 阅读全文
posted @ 2017-07-05 00:18 19992147 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 扫描线+dp 先对坐标排序,然后·用set维护端点,每次插入左端点,扫描到右端点时删除。每次考虑新插入时分割了哪两个木板,自己分别连边,再删除原来的边,最后dp(好像得维护used,有环) #include<bits/stdc++.h> using namespace std; typedef pa 阅读全文
posted @ 2017-07-03 17:34 19992147 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 线性基+dfs树 我们先搞出dfs树,其实最终路径就是最初的路径和一些环异或。 环最多只有m-n+1,因为一共有m条边,然后有n-1条边在dfs树上,所以还剩m-n+1条边,都可以构成环。 所以dfs搞出环,线性基找最大值就可以了。 #include<bits/stdc++.h> using nam 阅读全文
posted @ 2017-07-02 18:00 19992147 阅读(288) 评论(0) 推荐(0) 编辑
摘要: trie+堆 跟超级钢琴是一个想法 我们先把每个数插进trie里,然后对于每个数查找异或第二小,因为第一小肯定是和自己。 然后就和超级钢琴一样,从堆里取出,插入第k+1小。trie是可以查找第k小的,只要维护一个size。 #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2017-07-02 17:57 19992147 阅读(205) 评论(0) 推荐(0) 编辑
摘要: LCT维护MST+子树信息 看了好长时间题解 editorial 结论:像做最小生成树一样,当每个连通块都是偶数个点就停下来。 每次复杂度mlogm 口胡 首先我们发现奇数个点是不满足每个点度数为奇数,因为一条边贡献两个度数,所以度数一定是偶数,但是奇数个点每个点奇数度度数总和是奇数,所以点数一定是 阅读全文
posted @ 2017-07-01 11:29 19992147 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 数学+模拟 细节很多 首先我们发现,如果两个区间已经包含,那么可以输出empty,一个数能通过变换得到另一个区间的数,这个区间的大小必须小于等于终点区间的大小。加法不会改变区间大小,只有乘法会改变,而且每次乘法会使区间大小扩大m倍。其实我们发现,最终一个数会变成p*x+y,x是m的几次幂,y是一个a 阅读全文
posted @ 2017-06-30 12:30 19992147 阅读(226) 评论(3) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 53 下一页