随笔分类 -  暴力-倍增

摘要:1 for(ll i=1;i<=n;++i) f[i][0]=a[i],g[i][0]=a[i]; 2 for(ll j=1;(1<<j)<=n;++j) 3 for(ll i=1;(i+(1<<j)-1)<=n;i++) 4 { 5 f[i][j]=f[i][j-1]&f[i+(1<<(j-1))][j-1]; 6 ... 阅读全文
posted @ 2018-10-28 14:07 月亮茶 阅读(198) 评论(0) 推荐(0)
摘要:农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N。恰好有N-1条单位长度的双向道路,用各种各样的方法连接这些草地。而且从每片草地出发都可以抵达其他所有草地。也就是说,这些草地和道路构成了一种叫做树的图。输入包含一个详细的草地的集合,详细说明了每个草地的父节点P 阅读全文
posted @ 2018-06-04 20:57 月亮茶 阅读(226) 评论(0) 推荐(0)
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> 6 #include<queue> 7 #include<map> 8 #include<strin 阅读全文
posted @ 2018-03-02 10:21 月亮茶 阅读(141) 评论(0) 推荐(0)
摘要:f[i][j]表示从位置i开始,长度为2^j的一段区间的最值 以最小值为例: 原理:意会 加油! 阅读全文
posted @ 2018-02-28 15:14 月亮茶 阅读(155) 评论(0) 推荐(0)