• 2024-10-0117_document的全量替换、强制创建以及图解lazy delete机制
    1、document的全量替换2、document的强制创建3、document的删除1、document的全量替换(1)语法与创建文档是一样的,如果documentid不存在,那么就是创建;如果documentid已经存在,那么就是全量替换操作,替换document的json串内容(2)document是不可变的,如果要修改document的内容,第一种
  • 2024-09-2720240927
    FunisCounting我们可以发现数组\(a\)必须是\(x\)或\(x-1\),然后分类讨论即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e6+5,mod=998244353;intinv[N],f[N],g[N],t,n,a[N];intC(inta,intb){if(
  • 2024-09-24React 入门第十天:代码拆分与懒加载
    在第十天的学习中,我把重点放在了React的代码拆分和懒加载技术上。这些技术不仅能有效减少应用的初始加载时间,还能提升用户体验。随着应用的功能逐渐增加,如何确保应用性能保持高效,成为了一个必须解决的问题。1.为什么需要代码拆分?在开发大型React应用时,所有的代码通常会被打包成一
  • 2024-09-23qudsl 使用备忘录
    前提:已知A表,B表,且 A表一对多B表查询B表数据的同时,同步关联的A表数据1. A表的实体类中:@OneToMany(mappedBy="b",fetch=FetchType.LAZY)@JsonIgnoreprivateSet<B>bs=newHashSet<>();2. B表的实体类中:@QueryInit("*.*.*.*")@ManyToOne(
  • 2024-09-22CF2005C Lazy Narek
    记录dp的设计。一开始设计的是f[i][j]表示最后一个选i,匹配到j的最大值,然而这样转移是\(n^2\)的,题目要求\(n*m\).设计成0,1背包,考虑第i个选择或者不选择即可。#include<bits/stdc++.h>usingnamespacestd;constintN=1e3+11;intf[N][6];intlef[N][6],val[N][6],to[N
  • 2024-09-19C. Lazy Narek
    https://codeforces.com/contest/2005/problem/C题意:n个长度为m的字符串,可以任意选取若干个字符串组合起来,然后从中选择narek5个字符拼凑字符串,拼凑成功加5分,如果字母是narek中的其中一个并且没有使用,则扣一分,求最大分数。思路:dp,维护一个长度为5的数组,依次考虑在当前字符串中以
  • 2024-09-15Codeforces Round 972 (Div. 2) 2005C. Lazy Narek 题解
    原题链接:https://codeforces.com/contest/2005/problem/C看了教程发现都是用dp做的,在这里分享一个差不多的SPFA的思路(赛场上忘了Dijkstra不能有负边所以炸了)时间复杂度与dp同样是O(nm)形式化题意和翻译:有n个长度为m的字符串,你可以选择或不选择来拼接它们,但是不能更改字符串的
  • 2024-09-13线段树与离散化技巧 Mayor's posters——poj 2528
    问题描述:有一堵海报墙,从左到右一共有10000000个小块,墙上贴了许多海报,每张海报的高度与墙的高度相同,宽度不同,新帖的海报会将原有的海报覆盖,问当所有人把海报贴完是,墙上可以看到几张海报输入:第一行输入一个整数c表示测试数,每个测试第一行输入一个整数n(1<=N<=10000),代表张贴海报数
  • 2024-09-12线段树与二分操作 vases and flowers ——hdu 4614
    操作1,的关键是找到第一只和最后一只空花瓶,完全可以利用二分法查找,找第一只花瓶可以在[X,N]内查找,第一个位置pos1,最后一只花瓶则在[POS1,N]中找,然后更新[POS1,POS2],全部置1即可代码:#include<iostream>usingnamespacestd;constintN=5e4+5;structnode{ intlazy; in
  • 2024-08-30Vue 中 v-model 的修饰符
    lazy修饰符:将v-model 改为失去焦点后更新数据。number修饰符:将v-model数据转为数字类型。trim修饰符:去除v-model数据中的首尾空格。语法格式//lazy修饰符<inputv-model.lazy="数据">//number修饰符<inputv-model.number="数据">//trim修饰符<inputv-mod
  • 2024-08-29Splay
    涉及了区间翻转操作,Splay不再是BST;Splay只能保证其中序遍历为当前序列;用lazy标记做,具体见OI-wiki,代码见下#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=100010;structSplay{intl,r;intcnt,Size;intval,lazy;}a[N];int
  • 2024-08-27redis单机部署
     mkdir/data/redis/-ptarxvfredis-6.2.6.tar.gz-C/data/redis/ cd/data/redis/cdredis-6.2.6/yum-yinstallmake yum-yinstallgccyum-y installlibjemalloc-dev cddeps/ cdjemalloc/ ./configurecd/data/redis/redis-6.2.6&&makeMALL
  • 2024-08-25线段树(3)——区间操作叠加
    如果我既有区间乘法又有区间加法,我应该怎么办呢?这时候需要写两个标记。假设只写一个标记。标记加法:此时对于乘法操作,因为是将\(t_i+lazy_i\)乘以\(x\),这样子显然一个懒惰标记做不到。标记乘法:那我加法咋办?那两个标记怎么用呢?首先假设加法标记为\(lazy\),乘法标记为\(multi
  • 2024-08-23线段树(2)——懒惰标记Lazy Tag(单运算)及例题
    上一篇文章我们讲了线段树的最基本的操作。如果有一种操作叫做区间加法呢?这个时候显然可以依次单点修改,但是时间复杂度太高了。所以可以考虑优化,由于思考过程可能很长,此处直接引入懒惰标记。懒惰标记就是在对一颗树的所有节点进行某种统一操作时,只对根节点做一个标记表示它的子树
  • 2024-08-15暑假集训CSP提高模拟21
    暑假集训CSP提高模拟21组题人:@Muel_imj\(T1\)P241.黎明与萤火\(10pts\)原题:CF963BDestructionofaTree部分分\(10pts\):生成\(1\simn\)的全排列然后依次判断。\(20pts\):输出NO。正解叶子节点的度数为\(1\),不能直接删除,只能先删除父亲节点后再
  • 2024-08-15设计模式-延迟加载(Lazy Load)
    概念一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。加载一个对象会引起大量相关对象的加载,这样会损害系统的性能。延迟加载会暂时终止这个加载过程。运行机制四种实现延迟加载的方法:延迟初始化(Lazyinitialization)。每次访问属性域都要先检查该域是否
  • 2024-08-10016.Vue3入门,表单输入绑定,以及lazy延时回车才显示
    1、代码如下<template><h3>表单输入绑定</h3><form><!--编辑框内容变化时候,下面标签同步显示编辑框内容--><inputtype="text"v-model:="username"><P>{{username}}</P><!--编辑框内容变化时候,按下回车后,标
  • 2024-08-09AT_past202010_m 筆塗り 题解
    题目传送门前置知识线段树|树链剖分解法观察到要维护树上信息,且更改的呈链状,考虑进行树链剖分。将边权转化成点权,钦定边权给了深度更深的那个点,注意更新时不能更新\(\operatorname{LCA}\)。区间赋值和单点查询用线段树维护即可。代码#include<bits/stdc++.h>usingnam
  • 2024-08-05AT_abl_e Replace Digits 题解
    题目传送门前置知识线段树解法需要维护区间信息,考虑使用线段树维护。预处理出\(\overline{xx\dotsx}\),其中\(x\in\{1,2,3,4,5,6,7,8,9\}\),便于区间赋值。然后就是普通的线段树板子了。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#de
  • 2024-07-31老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格
  • 2024-07-31老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格
  • 2024-07-31老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格
  • 2024-07-24[Tkey] 黑兔子,白兔子
    CL-21一般拿到这个题第一眼都应该能看出并查集,subtask1是给并查集暴力修改的.后面subtask2没有联通操作,是给纯线段树的,也算是启发正解了再往下可以考虑操作\(1\)采用线段树区间修改,操作\(2\)采用并查集维护的思路.按这个思路去想,那么操作\(2\)肯定不能进行修改,因为我
  • 2024-07-23线段树
    自己看:https://blog.csdn.net/weq2011/article/details/128791426看懂就没问题了  单点修改+区间查询 https://www.luogu.com.cn/problem/P3374#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e5+5;intn,m,x,y,op,w[N],
  • 2024-07-19扫描线
    扫描线把题目给的的区间想象成平面直角坐标系上的点.再想象一条直线,按顺序扫描获取信息,维护信息求出矩形面积并:把一个矩形看出两条平行于纵轴的边,一条表示加入,一条表示删除,有很多区间的信息是一样的,用乘法处理,扫描线上的信息最多变动\(2n\)次考虑用线段树