上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 47 下一页
摘要: 题目传送门题意:训练指南P216分析:求出现最多次数的字串,那么对每个字串映射id,cnt记录次数求最大就可以了。#include using namespace std;const int N = 150 + 5;const int NODE = N * 70;const int LEN = 1e... 阅读全文
posted @ 2016-01-12 11:07 Running_Time 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:(训练指南P213) 求每个前缀的最短循环节分析:利用失配函数的性质,如果i % (i - fail[i]) == 0,那么正好错位移动一个循环节长度。#include using namespace std;const int N = 1e6 + 5;char str[N];int... 阅读全文
posted @ 2016-01-12 11:00 Running_Time 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 水A- Bulbs#include using namespace std;typedef long long ll;const int N = 1e5 + 5;const int INF = 0x3f3f3f3f;bool vis[110];int main(void) { memset (vis... 阅读全文
posted @ 2016-01-10 19:32 Running_Time 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 并查集 1002tree题意:中文题面分析:(官方题解)把每条边权是1的边断开,发现每个点离他最近的点个数就是他所在的连通块大小.开一个并查集,每次读到边权是0的边就合并.最后Ansi=size[findset(i)],sizeAns_i=size[findset(i)],sizeAns​i​​=s... 阅读全文
posted @ 2016-01-08 16:10 Running_Time 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:给出一个200 * 50000的像素点矩阵,执行50000次操作,每次把一个矩形/圆形/菱形/三角形内的像素点涂成指定颜色,问最后每种颜色的数量。分析:乍一看,很像用线段树成段更新写,虽然复杂度有点大,但是也想不到其他的方法.这题可以巧妙地运用并查集来涂色.离线,从最后一个倒过来涂色... 阅读全文
posted @ 2016-01-08 14:58 Running_Time 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:中文题面分析:隔了一个考试周再做,开始没有什么思路,感觉能用线段树/树状数组维护,树状数组维护最小值不会去写线段树,结果超时.后来发现只要维护前缀几个人以及用优先队列/set维护最小忍受值,加上队列编号pop就能实现全部功能了.//#include #include #include... 阅读全文
posted @ 2016-01-08 14:14 Running_Time 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 水A - Saitama Destroys Hotel简单的模拟,小贪心。其实只要求max (ans, t + f);#include using namespace std;#define lson l, mid, o r.f || (f == r.f && t 0 && i a[i].f)... 阅读全文
posted @ 2015-12-24 21:33 Running_Time 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:(训练指南P209) 问长字符串S能由短单词组成的方案数有多少个分析:书上的做法。递推法,从后往前,保存后缀S[i, len-1]的方案数,那么dp[i] = sum (dp[i+len(s)])。用字典树记录并查询短单词的前缀的长度。#include using namespace... 阅读全文
posted @ 2015-12-23 22:23 Running_Time 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:询问所有字符串的比较次数和(注意for循环内的比较也算)分析:将所有字符串插入到字典树上,然后结点信息记录有几个字符串,那么每走到一个结点就能知道比较到此时需要的次数。学习到链表存结点#include using namespace std;typedef long long ll;... 阅读全文
posted @ 2015-12-19 19:42 Running_Time 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P207分析:因为矩阵不超过20行,所以可以建20条线段的线段树,支持两个区间更新以及区间查询.#include using namespace std;#define lson l, mid, o b) a = b; } void push_up(int o) { no... 阅读全文
posted @ 2015-12-15 13:35 Running_Time 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 构造 1002GTW likes gt题意:中文题面分析:照着题解做的,我们可以倒着做,记一下最大值,如果遇到了修改操作,就把最大值减1,然后判断一下这个人会不会被消灭掉,然后再更新一下最大值。不知道其他的做法是怎么样的#include #include #include using namespa... 阅读全文
posted @ 2015-12-13 11:35 Running_Time 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 水A - Magic Spheres这题也卡了很久很久,关键是“至少”,所以只要判断多出来的是否比需要的多就行了。#include using namespace std;#define lson l, mid, o = less) puts ("Yes"); else puts ("No"); ... 阅读全文
posted @ 2015-12-13 11:17 Running_Time 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:动态最大连续子序列和,静态的题目分析:nlogn的归并思想。线段树维护结点的三个信息,最大前缀和,最大后缀和,该区间的最大和的两个端点,然后答案是三个的better。书上用pair保存端点,用自带的using namespace std;#define lson l, mid, rt... 阅读全文
posted @ 2015-12-09 18:02 Running_Time 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P197分析:枚举裁判的位置,用树状数组来得知前面比它小的和大的以及后面比它小的和大的,然后O (n)累加小 * 大 + 大 * 小 就可以了#include using namespace std;typedef long long ll;const int N = 1e5... 阅读全文
posted @ 2015-12-07 20:42 Running_Time 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P192分析:主要就是一个在路径压缩的过程中,更新点i到根的距离#include using namespace std;const int N = 2e4 + 5;struct DSU { int rt[N], d[N]; void init(void) { memset... 阅读全文
posted @ 2015-12-07 19:07 Running_Time 阅读(222) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 47 下一页