笔记
ForeverRover
日拱一卒,功不唐捐
展开
-
SQL复杂查询-除法实现-做题理解
复习时遇到的一个难点,理解了之后还是觉得做题太慢,所以自己想了一个觉得还比较高效的理解来做题。首先,要用复杂查询来做的题都可以转换成包含两个否定的说法。eg1:查询订购了所有产品的顾客的cid值转换后:不存在一个产品用户没有订购。eg2:查询被所有居住在New York的顾客订购的产品pid转换后:不存在居住在New York的某位顾客没有订购的产品。以eg1为例我们又可以把这两个否定给去掉,变成:存在一个产品用户订购了。变成这个说法之后就很好用除法来做了假设有一个orders表用orde原创 2022-10-21 17:35:59 · 1171 阅读 · 1 评论 -
Ac3494国际象棋
这是我遇到的第一个用状压dp来做的题,不知道该说幸运还是不幸~反正我觉得他不应该作为我的状压dp入门题,毕竟一看题解开四维数组的时候我就开始发懵,然后为了彻底了解这种题型,我又去看了几个用状压dp来做的题,发现其实套路还是很明显~首先,要用dp来做的题必定要满足无后效性,也就是当前状态由前一个状态决定,又很不幸,这道题他要当前列的状态由前两列的状态来决定,(那后两列呢?)。如下图:黑色是我们摆马的位置,其他五颜六色的点是它所不能走的位置,然后我们惊奇的发现,这居然是中心对称!拿第二列粉色的点来讲,..原创 2021-11-21 13:19:17 · 118 阅读 · 2 评论 -
扫地机器人--二分答案
第一次见到这样的题型——似乎叫 二分答案写个笔记,方便复习~经过观察可以发现一个机器人打扫所花费的时间=(他打扫的区域-1)*2这个题目要求我们求出这些机器人打扫所花费的最少时间由上面那个式子我们可以将所花费的最少时间转化为打扫的最小区域,最后再由最小区域得出最少时间。直接求显然不太好做。可以换个思路:这些机器人可以打扫很长的时间(打扫区域相互重叠),这样一定可以满足题目打扫完所有区域。如果在这个能满足的打扫区域条件再进行缩减。反之,不满足能够打扫完所有区域的条件对他进行扩大,那么最终得到的原创 2021-11-16 13:43:31 · 663 阅读 · 0 评论 -
二分查找边界条件三种基本情况的理解
二分查找边界条件三种基本情况的理解原创 2021-11-12 13:23:02 · 323 阅读 · 0 评论 -
洛谷p3383线性筛素数
洛谷p3383线性筛素数#include <iostream>#include <stdio.h>using namespace std;/*需要两个数组一个用来判断是否是质数,另一个用来存放已经判断好的质数*/bool is_prime[100000010];int prime[1000010];int main(){ std::ios::sync_with_stdio(0); int n,q; cin>>n>>q原创 2021-11-09 22:46:33 · 154 阅读 · 0 评论 -
p3373解题报告基于p3372
p3373解题报告基于p3372更新操作的理解:要更新的区间值在L-R范围中,根据lazy-tag的原理 不用更新到每个根节点实际上只需要在线段树已经分得的区间l-r中找出一个或多个包含在L-R中的l-r组成L-R并且可以根据公式直接求得这个区间结点更新后的值于是可以把函数分成3个部分两个结束条件 结束条件1 要更新的区间不在l到r中 直接舍弃掉这个区间结束条件2 找到了包含在L-R中的l-r区间 直接更新它 不再往后考虑第3个部分 一部分的l-r属于L-R 需要分出有用的部分进行更新 无用的原创 2021-10-10 23:01:02 · 143 阅读 · 0 评论 -
rmq预处理
原创 2021-10-05 00:40:02 · 111 阅读 · 0 评论 -
洛谷p3372 区间求和+区间更新 一点理解
2.更新 要更新的区间值在L-R范围中,根据lazy-tag的原理 不用更新到每个根节点实际上只需要在线段树已经分得的区间l-r中找出一个或多个包含在L-R中的l-r组成L-R并且可以根据公式直接求得这个区间结点更新后的值于是可以把函数分成3个部分两个结束条件 结束条件1 要更新的区间不在l到r中 直接舍弃掉这个区间结束条件2 找到了包含在L-R中的l-r区间 直接更新它 不再往后考虑第3个部分 一部分的l-r属于L-R 需要分出有用的部分进行更新 无用的部分舍弃并且一旦进行了拆分说明已经进.原创 2021-09-13 07:49:20 · 174 阅读 · 0 评论