摘要:
莫队其实就是一个带优化的暴力,通过将区间询问按一定规则进行排序,从而优化过程,求出答案。 举一例子:(例子不具备权威性,只是让读者了解莫队是干啥的) 至于如何将询问排序,证明就有一点烦恼,直接说结论: : 可以借助分块思想,假设总区间为n,那么每一块区间长度应趋近于 n^(2.0/3) 可以将询问中 阅读全文
摘要:
1.基础版(暴力)素数判定: 2.再诉说一个素数规律。 故可以将上述代码再进行优化剪枝。 3.有的时候,面临的问题是询问次数过多,这里就需要通过一定的预处理,将询问的复杂度降为O(1)。 显然这里的预处理就是 线性素数筛。 原理:n为素数,那么 i * n (i为非1的任意自然数)是非素数,即将 i 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2528 题意: 在墙上贴海报,输入n(1<=n<=10000),表示n张海报,后n行输入 两整数l,r ( 1<= l, r<= 1e9 ),表示海报从编号为l的石头一直贴到编号为r的石头,输入顺序即为粘贴顺序。问n张贴完之后,还能看到 阅读全文
摘要:
题目来源:ACM-ICPC 2015 Changchun Preliminary Contest 题意: 巴拉巴拉 思路: 优先队列内库的直接使用 (优先队列又名单调队列) 优先队列: 是一种队列, 只不过他的储存规则存在自动排序等操作,里面可以存入结构体,可以按照结构体的某个元素进行排序。(即需要 阅读全文
摘要:
题目链接: poj 2777 题意:板块涂色,询问区间内颜色的数目。 解题:因为题目给出颜色数目最多30种,因此可以借用二进制中的或运算 来更新父区间。 但是这写的是线段树常用的懒人标记 延迟更新。 别人已经写的很好了,直接借用吧,博客链接 https://blog.csdn.net/Tong_zh 阅读全文
摘要:
RMQ是一种离线算法,通常用于求出区间【l,r】中的最大值或者最小值。 显然这种问题用线段树是能解决的,我之前也一直用的线段树完成这题。 RMQ,简称ST算法。 通过进行(nlogn)的预处理等操作,使询问的时间复杂度 达到 O(1),在此当然也蕴含着dp的思想。 具体: 设立一个数组dp【i】【j 阅读全文
摘要:
题目链接: https://codeforces.com/problemset/problem/1141/C 题意: 输入整数n ,在输入n-1个数,代表着目标数组后一个减前一个数组的差的值, 即: ans[i+1] - ans[i] 若存在则输出数组ans的值 若不存在则输出-1 思路: 暴力水题 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/1141/D 题意:输入一个整数n,然后再分别输入长度为n的两个字符串, 其中字符串均是由小写字母和 ‘?’组成。 输出最大匹配数,再输出每个匹配数对于的地址。 对于匹配数: 在两个字符串中分别取一个字符, 阅读全文
摘要:
起初以为是直接暴搜,然后发现好像还要记忆化才能AC。。。。 思路: 对于子矩阵所有元素之和,题目给了c【i】【j】 是由 a【i】* b【j】, 然后可以发现一个规律,对于子矩阵右上角坐标【x1,y1】到左下角【x2,y2】 的所有元素之和 会等于 (sum_a[x2]-sum_a[x1-1])*( 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2823 题意: 给定数字n,和k 范围在区间【1,le6】 下一行有n个数, 依次输出每一个区间长度为k的 最小值 另一行依次输出区间长度为k的 最大值 解: 显然这里用的是优先队列,又名单调队列。 顾名思义就是单调递增,或者是单调递减 阅读全文