上一页 1 ··· 4 5 6 7 8
  2016年9月2日
摘要: 迭代加深搜索。 剪枝:当满足以下任意一个条件退出: 1.当前已搜到答案时(ans!=-1||sum==0) 2.剩余步数+1<当前局面与目标局面不同的格子数sum 时(因为n步最多改变n+1个格子) 3.当前步数>当前规定最大步数时 1 #include<cstdio> 2 #include<cst 阅读全文
posted @ 2016-09-02 16:21 Absolutezero 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 显然线段树模板题 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=200000; 5 long long INF=1000000000000; 6 int len,m,n; 7 long long 阅读全文
posted @ 2016-09-02 15:37 Absolutezero 阅读(135) 评论(0) 推荐(0) 编辑
  2016年9月1日
摘要: 思路:离线倒序恢复被摧毁星球,同时维护联通块个数。但需要一定的优化。 具体:用邻接表存边。未被摧毁的星球记为现存; 第一次处理将未被摧毁的边连接(并查集),算出连通块个数start; 之后每次倒序恢复一个被摧毁的星球i,将星球i记录为已恢复,并连接i连向所有现存星球j的边。其中,每合并一次发现将原先 阅读全文
posted @ 2016-09-01 11:11 Absolutezero 阅读(184) 评论(0) 推荐(0) 编辑
  2016年8月31日
摘要: RMQ模板题 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=50001,M=30; 5 int n,q,h[N],minl[N][M],maxl[N][M]; 6 int RMQ(int,int 阅读全文
posted @ 2016-08-31 21:58 Absolutezero 阅读(186) 评论(0) 推荐(0) 编辑
  2016年8月27日
摘要: 基本上每个网站上都有,就不粘提面啦。 这道题要求维护区间种类数,不支持区间加减法。 所以需要通过一些转换使其满足树状数组/线段树的条件。 首先,对于段区间中的数,若有数重复出现,则只需关心最后出现的一个。 所以,我们可以对所有查询区间的r非降排序,从左向右推now_r并同时维护一个树状数组。 树状数 阅读全文
posted @ 2016-08-27 21:31 Absolutezero 阅读(881) 评论(0) 推荐(0) 编辑
  2016年8月14日
摘要: 第一篇博客!根据传统水一水! 阅读全文
posted @ 2016-08-14 20:31 Absolutezero 阅读(116) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8