摘要: 题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 << m) - 1则是可能的。打印与之前相似。 #include <bits/stdc++.h> using n 阅读全文
posted @ 2016-02-26 20:27 Running_Time 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:训练指南P248 分析:逆向考虑,比如一个全排列:7345261,它也可以表示成题目中的形式,第一个数字7是由6 * (7 - 1)得到的,第二个数字3有2 * (7 - 2)得到,所以只要树状数组单点修改二分(找最远的因为有些位置是0)查询当前第s[i] + 1的数字(在BIT中 阅读全文
posted @ 2016-02-26 19:43 Running_Time 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:训练指南P248 分析:第一个操作可以用并查集实现,保存某集合的最小高度和最大高度以及城市个数。运用线段树成端更新来统计一个区间高度的个数,此时高度需要离散化。这题两种数据结构一起使用,联系紧密。 #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2016-02-26 19:14 Running_Time 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:n个数,两种操作,一是每个数字加x,二是查询& (1 << T) == 1 的个数 分析:因为累加是永远的,所以可以离线处理。树状数组点是c[16][M] 表示数字x%(1 << j) 后的数字pos,考虑第j位的个数。当询问时根据add不同的值不同的处理情况。 #include 阅读全文
posted @ 2016-02-26 18:51 Running_Time 阅读(292) 评论(0) 推荐(0) 编辑