上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页
摘要: 先预处理出来从每个位置 以0开始 往右交替最多能放多少格 然后就相当于对每一列做HISTOGRA 阅读全文
posted @ 2018-10-22 22:23 Ressed 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 分析1的个数的奇偶性: 奇xor奇=偶xor偶=偶 奇xor偶=奇 所以只要统计1的个数是奇数的数的个数 和 是偶数的个数 乘一起就行了 直接用bitset来做,虽然常数很小/数据随机可以过,但复杂度是$O(nlogv)$的 其实可以把一个数拆成前16位和后16位,先预处理出来$2^{16}$个数的 阅读全文
posted @ 2018-10-22 22:14 Ressed 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 先标记上一个人所有最短路上的边(同时也要标记反向边) 然后拿着另一个人最短路上的边(会构成一个DAG)去做拓扑dp,记从原点到某个点的最大的某个路径的被标记的边的个数 阅读全文
posted @ 2018-10-22 21:54 Ressed 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 为了节省能量,我们会希望一个已经烧开了的水温度越低越好 那么可以得到结论,它要依次去碰当前温度从大到小的水 然后再把温度最高的烧开呗 可是直接模拟会T 稍微写一写大概能找到每次烧开花费能量的一个规律 但我哪找得出来啊 知道了以后也不会证 阅读全文
posted @ 2018-10-22 21:47 Ressed 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 他要求的就是lcp(x,y)>=i的(x,y)的个数和a[x]*a[y]的最大值 做一下后缀和,就只要求lcp=i的了 既然lcp(x,y)=min(h[rank[x]+1],..,[h[rank[y]]]) 那么我们求出来对于每一个h,以它作为最小值的区间的左右端点就可以了,这个可以用单调栈,具体 阅读全文
posted @ 2018-10-22 21:41 Ressed 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 常见套路:棋盘黑白染色,就变成了一张二分图 然后如果选了黑点,四周的白点就不能选了,也是最小割的套路。先把所有价值加起来,再减掉一个最少的不能选的价值,也就是割掉表示不选 建边(S,黑点i,v[i]),(黑点i,i四周的白点,inf),(白点j,T,v[j]) (黑点还是白点,你必须要割一个...) 阅读全文
posted @ 2018-10-19 15:10 Ressed 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 虽然割点不好搞,但是可以变成割边呀 拆点,拆出来的边权给1,原图中的边权给inf,然后跑dinic就行了 阅读全文
posted @ 2018-10-19 15:04 Ressed 阅读(131) 评论(0) 推荐(0) 编辑
摘要: Bob肯定想挑一个流量最大的边,然后把所有的费用都加给它呗 那Alice就让流量最大的边尽量小呗 那就二分一下答案再dinic呗 阅读全文
posted @ 2018-10-19 14:58 Ressed 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 我们发现,这个染色的操作他就很像LCT中access的操作(为什么??),然后就自然而然地想到,其实一个某条路径上的颜色数量,就是我们做一个只有access操作的LCT,这条路径经过的splay的数量 然后考虑怎么样来维护这个数量。access的过程中,有实边变虚边、虚边变实边的操作,对应过来,实边 阅读全文
posted @ 2018-10-19 14:56 Ressed 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 如果把“我全都要”看作是我全不要的话,就可以用最小割解决啦 源点S,汇点T 我们试图让每个市民作为一个等待被割断的路径 把狗狗给市民:建边(S,i,1),其中i是市民 把狗狗给守卫:建边(j,T,1),其中j是守卫(也就是边) 市民要在路上所有边看到狗:建边(i,j,1),其中i是市民,j是i经过的 阅读全文
posted @ 2018-10-18 20:23 Ressed 阅读(657) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页