自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

灯灯登登的博客

记录每日学习

  • 博客(77)
  • 收藏
  • 关注

原创 代码源每日一题 div1 #807 矩阵操作

代码源每日一题 div1 #807 矩阵操作题意给你一个二维矩阵,每次可以对一行或者一列加1(modk),问,最少需要多少次操作,能让整个矩阵变成全0。思路首先,我们先考虑对每行/列加这个操作,很容易想到,用rir_iri​表示给第i行加的次数,cic_ici​表示给第i列加了多少次。那么,我们需要求一个约束条件为ri+ci+aij=0(modk)r_i+c_i+a_{ij}=0(modk)ri​+ci​+aij​=0(modk),∑(ri+ci)\sum(r_i+c_i)∑(ri​+ci​)的最小

2022-04-29 22:53:01 539

原创 代码源每日一题 div1 #804 石子游戏 II

#804 石子游戏 II思路对于博弈论问题,应该考虑以下几个问题:什么局面不能操作(失败态)每种操作会对当前状态发生什么样的改变如果表示当前这个局面先考虑不能操作的局面,为:k个1,以及一个偶数。(k>=0)(k>=0)(k>=0)k个1。 (k>=0)(k>=0)(k>=0)基于此,所以我们可以把当前局面表示为:1的个数和偶数的个数。再考虑每种操作会对当前局面发生的变化。那么:拆分一堆奇数的石子。即让偶数个数+1合并两堆偶数的石子,即让

2022-04-28 14:34:55 1074

原创 代码源每日一题 div1 #802 吃蛋糕

802 吃蛋糕思路读完题目,以及看到数据范围,大概猜出来,这题是概率dp观察到ai<=3a_i <= 3ai​<=3,所以从这个条件入手。f[i][j][k]f[i][j][k]f[i][j][k]表示,当前有1个蛋糕的盆子有i个,2个蛋糕盆子有j个,3个蛋糕有k个,吃完这些蛋糕的所有方案。设计完状态之后,转移方程就很好实现了,答案就是下面四种情况加起来吃1个蛋糕的盆子。i/n∗f[i−1][j][k]i/n * f[i-1][j][k]i/n∗f[i−1][j][k]2

2022-04-26 00:35:10 300

原创 2022 leetcode 春季赛 LCP 53. 守护太空城

题目链接 LCP 53. 守护太空城题意给你一堆t(1<=t<=5)t(1<=t<=5)t(1<=t<=5)时间到达位置p的陨石,有三种防御措施,每中措施有不同的消耗。问消耗最少的方案的消耗选择一个舱室开启屏障,能量消耗为 2选择相邻两个舱室开启联合屏障,能量消耗为 3对于已开启的一个屏障,多维持一时刻,能量消耗为 1注意:同一时间,一个舱室不能被多个屏障覆盖陨石雨仅在到达时刻对冲击位置处的舱室有影响思路观察数据范围 t(1<=t&l

2022-04-24 16:23:41 304

原创 代码源 每日一题 div1 Rad

题目链接Rad思路这题应该是构造+数论先考虑rad(n)rad(n)rad(n)这个函数,什么情况下满足rad(n)<nrad(n)<nrad(n)<n,如果把n进行质因子分解的话,会变成这样的形式p1k1∗p2k2∗...∗pnknp_1^{k_1}*p_2^{k_2}*...*p_n^{k_n}p1k1​​∗p2k2​​∗...∗pnkn​​。可以发现,但凡有一个ki>=2k_i>=2ki​>=2,那么就会有rad(n)<nrad(n)<nrad(

2022-04-24 12:16:48 234

原创 代码源 每日一题 div1合法括号串

合法括号串题意给你一个只有括号组成的字符串,然后给你若干询问,每次输出这个询问的区间中有多少对合法的括号子序列思路需要注意,这题询问的是合法子序列的数量。如果不考虑区间这个限制,那么可以只用一个栈维护左括号,每次看看右括号能不能找到一个左括号即可。如果有区间的限制怎么办?再回顾一下上面用一个栈维护的过程,可以发现,每次匹配的时候,每个右括号都是找到最近的一个左括号进行匹配。所以,如果要询问一个区间内合法子序列的数量,那么就等价于这个匹配对的左右端点都在这个区间内!到这里,这题又要变成一个二维数

2022-04-22 14:23:06 1299

原创 AtCoder Beginner Contest 247 F Cards

F - Cards思路把每一张牌想象成一条边,牌正面跟反面想象成点。那么这个问题就变成了,从大小为n的边集选出来一些子集合,是的这个子集完全覆盖住所有的点,问这些子集有多少个?观察到P,Q是一个1~n的排列,所以每个1~n中的每个点总共出现两次,也就是说,每个点都有两条边与其相连如果选上所有的边,那么1~n构成的图肯定是若干个环,且环上任意一条边只属于一个环,这个第一点已经证明。所以我们可以单独考虑每个环有多少种方案,再利用乘法原理,把每个环的方案数量相乘即可得到答案。现在考虑一个包含m个

2022-04-20 12:49:25 787

原创 代码源 每日一题 div1 删数

删数今天的题又不会写,所以来写题解总结一下题意给你一个数组,每次如果ai=(ai+1+ai−1)/2a_i=(a_{i+1}+a_{i-1})/2ai​=(ai+1​+ai−1​)/2,那么就可以删除aia_iai​。问这个数组经过一系列删除后最短长度是多少?思路...

2022-04-13 13:13:27 779

原创 代码源每日一题 div1 #709. 最大权值划分

最大权值划分大概题目意思是给你一个数组,你需要把它划分为连续的一些子数组,使得每个子数组的max-min最小。思路第一眼的时候没啥思路,直接想了个O(n2)O(n^2)O(n2)的做法,也就是枚举最后一个子数组划分到哪里,也不懂咋优化。正解观察到最大减最小(极差问题),等价于给一个子数组里面的两个数字,一个给一个+号,一个给一个-号,成对赋予了这些符号后,整个数组的极差最大。那么可以先不考虑怎么划分,想象最优解,数组中的正负号形态肯定也是像上面所说的那样。即..+.....−..−...+...

2022-04-12 10:20:14 217

原创 leetcode杯 LCP 38. 守卫城堡

LCP 38. 守卫城堡题解给了两个解法,但是最小割我不太会,所以来写下我对dp解法对理解题意给你一个2∗N2*N2∗N的图,有城堡,怪物,障碍物,传送门,空地五种类型的物体。你每次可以放一次障碍物,问:至少需要放多少次才能把怪物跟城堡完全分隔开?思路一些不怎么显然的观察讲道理看到图是2∗N2*N2∗N我想过用dp怎么做,但是想不到。这题的转移方式非常特别,我们来考虑怎么设计状态,因为有传送门,所以我们想到,怪物要么借助传送门走到城堡,要不不用传送门也能走到城堡。借助传送门走到城堡,如果有解

2022-04-11 15:51:52 265

原创 代码源 每日一题 div1 环的数量

环的数量原题链接题目大意给定一张含有 𝑛 个点,𝑚 条边的简单图,求简单环的数量。思路看到n<=19n<=19n<=19这个数据范围,我们来考虑状态压缩DP,想到一个类似的哈密顿回路问题,那么这个题也可以用类似的方法来解决状态设计:f[i][j]f[i][j]f[i][j]为当前经过的点集为i,且当前在j号点上的路径数量。其中起点为low(i), 后面解释这个起点的含义。那环怎么解决?可以这样规定,假设有一个环,那它的状态为i,low为iii的最低有效位(也就是最低为1的那个

2022-04-10 20:51:34 230

原创 代码源每日一题 div1 #603 丹钓战

题目链接丹钓战人傻了,又是这种题看不出来怎么处理,前面刚写过一个类似的问题“Z”型矩阵,同样为二维数点问题,再写一篇题解吧。可以看出来,对于每个从1~i的区间我们很好求,直接模拟即可。但是这些询问要求我们处理[l,r][l,r][l,r]之间的询问,这如何处理?稍微观察一下有一个重大的性质,然而我死活观察不出来。先从1~i开始处理,对于[l,r][l,r][l,r]的数对(ai,bi)(a_i,b_i)(ai​,bi​),只要他在栈中的上一个数对的下标<l<l<l,那么这个数对必然是

2022-04-09 20:13:38 821

原创 代码源 div1每日一题 #507.测温

测温这道题好独特,本来以为是贪心+单调栈之类的。。后来想了下发现有个信息完全不知道怎么维护,下面是整理dls的思路。考虑一个比较暴力的方法,dp[i][j]dp[i][j]dp[i][j]为考虑到第i天,当前温度为j时,连续的最长天数,所以我们有这样的转移dp[i][j]=dp[i−1][k]+1,k<=jdp[i][j] = dp[i - 1][k]+1, k <= jdp[i][j]=dp[i−1][k]+1,k<=j这个dp的时间复杂度为O(n∗W)O(n*W)O(n∗W)

2022-04-08 22:08:46 500

原创 代码源div1每日一题“Z”型矩阵

题目“Z”型矩阵这题真是阴间啊,听dls听半天不知道怎么维护这个信息,现在大概记录一下我想清楚这个题的心路历程考虑最暴力的方法,对于每个左上角(X,Y)(X,Y)(X,Y)计算一个Z形矩阵,那么可以再枚举一下Z的右下角那个点,可以发现这个做法是O(n3)O(n^3)O(n3)的。需要用树状数组优化一下。对于每个左上角(X,Y)(X,Y)(X,Y),考虑其向左以及向左下角延伸的最大长度,记为L,那么可以发现,我们需要数的点都会落在yi∈[y,y−l+1]y_i\in[y, y-l+1]yi​∈[y,y−

2022-04-07 22:15:59 535

原创 2021 icpc第二场网络赛 L Euler Function

链接大意每次给你两种操作,一种是区间称,另一种是求ph[a[l]]+ph[a[l+1]]...+ph[a[r]]ph[a[l]] + ph[a[l+1]]...+ph[a[r]]ph[a[l]]+ph[a[l+1]]...+ph[a[r]]思路首先,观察到区间乘是套了一个函数的,所以我们不能直接乘,得想办法把这个化简一下我们知道对于欧拉函数有这么一个性质, 当p是质数时p不是x的因子时,ph(p∗x)=p∗ph(x)ph(p*x)=p*ph(x)ph(p∗x)=p∗ph(x)p是x的因子时,

2022-04-01 21:32:59 339

原创 Codeforces Round #748 (Div. 3) 题解代码

题目链接A#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define x first#define y secondtypedef pair<int,int> PII;const int N = 1e4 + 10;int main(){ int T; cin >> T; while(T--)

2021-11-04 12:27:26 119

原创 2021 CCPC 网络赛题解

Problem A. Cut The Wire签到题 略Problem B. Time-Division Multiplexing#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 5e5 + 10;int n;char s[110][14];int p[110];int cnt[256];int main() { int T; scanf("%d", &

2021-08-29 22:37:35 1644 3

原创 模拟退火算法

背景:想象整个解空间为一段连续的函数,y轴为温度,求解的过程相当于求一个全局的最优解。模拟退火有关的几个概念:温度(步长): 初始温度T0T_0T0​,终止温度TET_ETE​衰减系数: T′=T∗0.96T'=T * 0.96T′=T∗0.96, 这个0.96就是一个衰减系数,取值为(0,1)之间的一个值,一般来说,系数越大,搜到全局最优解的可能最大。温度差△E\bigtriangleup E△E: 新点T2T_2T2​和当前点T1T_1T1​的温度差。△E=T2−T1\bigtriangleu

2021-08-15 01:06:18 376

原创 AcWing 198. 反素数

思路求1-N中的反素数,实际上就是找出1-N中约数最多的数字,如果这个数字有 1个,取最小的一个。记这个数字为x,可以分解质因数x=p1c1p2c2....pncnx =p_1^{c_1}p_2^{c_2}....p_n^{c_n}x=p1c1​​p2c2​​....pncn​​,且p1<p2<...<pnp_1<p_2<...< p_np1​<p2​<...<pn​。由于2∗3∗5∗7∗9∗11∗13∗17∗19∗23>231−12*3*

2021-06-05 18:31:45 85

原创 柯里化技术

函数柯里化场景:1.参数复用 2.兼容性检测参数复用function uri_curring(protocol) { return function (hostname, pathname) { return `${protocol}${hostname}${pathname}`; }}const uri_https = uri_curring('https://');const url1 = uri_https('pku.com', '/index.j

2021-04-07 14:51:12 83

原创 javascript之this指向

this绑定规则原则:谁调用了这个函数,那么this就会指向谁默认绑定默认绑定下,this会指向window对象(可以看作默认是由window对象调用了这个函数var c = 3;(function () { var c = 2; console.log(this.c) //3})()隐式绑定如果是一个对象调用一个方法,那么this隐式绑定到这个对象上(对象调用了函数var a = 2;const obj = { a: "1", sayHi: functi

2021-04-07 14:38:53 78

原创 重绘和回流(重排/重构)

浏览器的渲染机制渲染引擎根据标签生成对应的结点,并构建DOM树(解析)。解析渲染树,解析对应CSS样式的文件信息(JS定义的样式和CSS文件中的样式),构建生成渲染树,其中渲染树的每个结点都有自己的样式信息(render tree)PS:渲染树中不包含隐藏的结点,比如head,和display:none布局渲染树(根节点递归),计算出每个结点的所在位置,最终绘制渲染树重绘(repaint and redraw)绘制 当盒子的位置、大小以及其他的CSS属性确定下来之后,浏览器就把结点根据这些特性

2021-03-11 23:52:29 233

原创 CSS之浏览器前缀

私有前缀私有前缀是为了兼容老版本浏览器的写法,新版的浏览器则不需要添加

2021-03-03 15:35:22 274 1

原创 npm 几个常用的包

nrm 可用于快速切换包镜像地址的工具命令nrm use taobao 使用淘宝镜像nrm use npm 使用npmnrm current 查看当前的镜像地址pm2, nodemonnodemon是本地的调试工具,可以自动侦测文件的改动并运行,不用重新编译整个文件pm2是nodemon的服务端版本比如我们的入口文件为index.js,那么可以使用以下命令nodemon index.js //客户端命令pm2 start index.js //服务端命令pm2 r.

2021-03-02 14:40:04 456

原创 nginx配置spa(单页面应用)

安装nginx我这里使用的ubuntu的系统,使用以下命令安装nginxapt install nginx -y上传把我们的单页面应用上传到我们的服务器,比如我的单页面应用的文件结构为把这些放置到sweeper-js的文件夹里面上传到服务器用户的问价夹中,我的目录为/ubuntu/sweeper-js配置nginx服务在/etc/nginx/conf.d/中,新建一个sweeper.conf的文件,里面的内容为server{ listen 3020; //监听的端口号 serv

2021-03-01 18:20:41 766

原创 Git常用命令总结

初始化git init 初始化一个Git仓库提交添加文件到Git仓库,分两步:git add <file>,把文件添加暂存区。可反复多次使用,添加多个文件。或使用git add .添加所有文件git commit -m <message>,把文件添加到分支上。-m 表示对每次提交后的说明,方便阅读。打印信息|查看修改git log [--pretty=oneline] 查看最近的提交日志,--pretty=oneline表示一行输出git reflog 打印输入过

2021-02-27 22:27:18 436

原创 JavaScript之执行机制

导读之前对js的执行机制一知半解,导致使用setTimeout和setInterval函数时老是犯一些比较低级的错误。这篇文章就来系统地总结一下,先来看代码const s = new Date();const fn = () => { let i = 0; while (i < 2000000000) { i++; } console.log(Math.floor(new Date() - s) / 1000, "秒");}setInte

2021-02-25 17:00:11 156

原创 ES6之尾调用优化

在ES5之前,考虑以下代码function fac() { let a; return dosomething();}参照以上代码,尾调用的意义是指,函数作为某个函数的最后一个语句进行调用。ES5以前会像其他语言(C++,java)一样,会为dosomething函数分配一个新的栈帧,调用完成后,再返回fac函数,最后输出结果。这样新分配的栈帧就会带来额外的开销,严重影响程序的性能。ES6的尾调用优化就不会新分配栈,而是会用dosomething的函数栈,但满足尾调用优化要满足三个条件尾

2021-02-24 15:39:14 124

原创 前端知识体系【下】

1.开发环境1.1 git见廖雪峰的Git教程1.2 调试工具1.3 抓包1.4 webpack babel把ES6+的js语法转化为ES51.5 linux常用命令…远程链接软件mobaXterm,可连接远程服务器2.运行环境2.1 网页加载过程题目从输入url到渲染出页面的整个过程window.onload和DOMContentLoaded的区别知识点加载资源的形式html代码媒体文件,图片,视频js,css文件加载资源的过程DNS解析:域名到-&

2021-02-24 10:18:57 67

原创 前端知识体系【上】

原则找准知识体系,刻意练习,及时反馈刷题要形成结构化的知识范围,涵盖所有的知识点,结构化、有组织、易拓展围绕这几个方面解决:W3C标准(应用) 2. ECMA262标准(定义)3. 开发环境 4.运行环境常见的几个问题window.onload和DOMContentLoaded区别?script为什么放在头部,为什么放在body(页面加载)JS创建10个<a>标签,点击弹出对应的序号1~10。(闭包,作用域)手写节流throttle和防抖debounce(体验,性能优化)

2021-02-22 16:20:51 101

原创 CSS之居中

垂直居中对于盒子模型,可以使文字的 行高=盒子的高度,实现文字的垂直居中原理:文字高度+上空隙+下空袭=行高,刚好撑满整个盒子模型的高度如果行高小于盒子高度,则文字偏上;反之偏下水平居中text-align: center;...

2021-02-19 13:32:21 47

原创 JS高级程序设计读书笔记【2~4章】

JavaScript高级程序设计出第四版了,之前草率地看过一遍第三版,补个坑,把这本书读完,本专题转化为自己理解的知识,作为读书笔记记录。加载js加入<script>标签即可,script标签所含的元素可查阅MDN或者使用DOM来操作,动态加入<script>标签加载位置:<head>内:把CSS和JS放到了一起,不许把JS代码下载完成后,才开始旋绕页面,这会导致页面渲染的明显延迟问题。<body>内:通常是放在body内,这样加载速度更快&

2021-02-19 11:18:09 88

原创 CSS3之新特性

filter 函数函数类型egblur(5px); /*模糊处理,数值越大模糊越明显*/img {filter: blur(5px) } /*图片模糊处理*/img:hover{filter: blur(0)} /*去除模糊*/calc(100% -80px); /*()里面可以使用+-*÷来计算*/width : calc(100%, -80px); /*孩子始终比父盒子小30px*/过渡(transition)过渡动画:可以从一个状态 渐渐过渡到另外的一个状态使用方式:哪个属性

2021-02-18 22:33:23 72

原创 CSS3之选择器

CSS选择器基础标签选择器类选择器id选择器复合选择器后代选择器语法:[元素1]+空格+[元素2]{}eg:ol li{} 选择 ol的后代li子选择器[元素1]>[元素2]{} 只选择子元素并集选择器[元素1]+,+[元素2] 语法规定:竖着写伪类选择器语法: div:first-child,解释:选择div的第一个孩子链接伪类选择器 a:[link/visited/hover/active]focus伪类选择器 input:

2021-02-18 21:19:08 149

原创 HTML提高【新特性】

针对当前的不足,增加了一部分的新标签、新表单和新的表单属性,IE9以上才支持,使用时需要注意兼容性的问题。语义化标签新增的多媒体标签1. 音频:<audio>2. 视频:<video>只支持3种视频格式,尽量使用mp4的格式新增的input标签input会根据输入的内容进行自动验证,不需要使用js手动验证。而且对移动端支持更加友好新增的表单属性示例<form action=""> <input type="search"

2021-02-18 17:11:28 47

原创 CSS之高级技巧

精灵图(sprites)当网页中的图片过多时,服务器就会频繁地接受和发送请求图片,造成服务器请求压力过大,大大降低页面的加载速度。精灵图把所有的图标都整合在一个图片之中,有效地减少了接受和请求的次数,减轻了服务器的压力,提高的服务器的运行效率。核心精灵技术主要时利用背景的定位,把想要的图标定位到某个位置。使用background-position来定义x,y坐标来实现。视频。工具网站如果自己量,一般都是负的值字体图标精灵图比较大,而且放大缩小会失真,而且图标制作完毕后更新非常麻烦。字体图标

2021-02-18 16:38:45 95

原创 学成在线demo练习

布局分析网站的布局部分,有header,banner具体流程header制作h5部分代码 <!-- 头部盒子 --> <div class="header w"> <!-- logo --> <div class="logo"> <img src="images/logo.png" alt="#"> </div> <!-

2021-02-18 10:09:19 125

原创 CSS之定位

背景当标准流或者浮动不能实现时。(即让一个元素浮动在另一个元素上方,或者一个模块固定在屏幕的某个位置)浮动可以让多个块级盒子没有缝隙排列显示,用于横向排列盒子而定位可以让盒子自由自在某个盒子内移动位置或固定在屏幕中的某个位置,并且可以压住其他盒子组成定位模式用于指定一个元素在文档的定位方式,使用position设置,共有四个边偏移静态定位(static)默认方式,就是无定位的意思,按照标准流的方式来摆放,所以在布局时很少使用相对定位(relative)元素在移动位置的时候,是根

2021-02-18 00:53:55 72

原创 CSS之布局

eg:页面布局的整体思路确定页面的版心(可视区),页面的核心区域分析页面中的行模块,以及每个模块中的列模块。一行中的列模块经常浮动布局,确定列大小,之后确定列的位置。页面布局第二准则遵循先结构,后样式的原则。(先H5,后CSS)多写多积累...

2021-02-17 10:46:42 89

原创 CSS之浮动

布局的几种方式即用CSS来摆放盒子,CSS有三种方式普通流(标准流)浮动固定标准流标准流中元素分行级元素和块级元素,即基本的布局方式,下面仅仅介绍浮动和固定两种方式浮动浮动元素会触及到另一个浮动元素的边框或到包容盒子边框为止语法float:left|right典型应用:可以让多个元素一行排列在一行显示。纵向排列用标准流,横向排列用浮动流特点:浮动元素脱离标准流,不再保留原先的位置。对齐方式为上边界对齐。若盒子所想导致装不齐,则另起一行。浮动元素具有行内块元素的特性,块级元素

2021-02-16 19:44:36 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除