![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
零碎知识点
文章平均质量分 60
小飞猪Jay
远风知我意,微凉又深情。
展开
-
字典序最小的美丽字符串
字典序最小的美丽字符串原创 2024-06-22 12:54:40 · 514 阅读 · 0 评论 -
CSP垦田计划
只好根据上下限写了个二分算法,A了。只拿了70分,后面30分TLE了。原创 2024-05-29 19:58:04 · 281 阅读 · 0 评论 -
CSP十滴水
但是他给的信息是,m只有3e5,且每次滴水都会滴在有水的地方,水满了之后也只会扩散到左右有水的地方。也就是说,只有有水的地方才是我们会用到的地方。所以,我们只需要将有水的地方存起来即可,同时每次水满了之后会扩散到左右两个相邻有水的地方,所以还需要保存每个水滴左右相邻的水滴的位置。每次有水滴满了,就将他加入优先队列,因为有多个水滴同时满了的话,从小的开始先扩散。题目给的容器很多,1e9,我们遍历肯定会超时。原创 2024-05-27 10:33:42 · 214 阅读 · 0 评论 -
CSP化学方程式配平(简单易懂)
did(int i , int x , int y):将第 i 行的第 y 个数前都是0,第 y 个数开始不是0,根据第 x 行将第 i 行第 y 个数开始的数变成0。double a[50][50] : a[i][j]表示编号为 i 的字符串出现在第 j 个式子中的数量。setst : 给每一个元素对应一个数字编号,顺序就是进入set的顺序,也就是出现的顺序。map<string , int>mp : 将元素 和 数字编号 相对应。check():检查每个字符串中元素及其数量。m : 未知数的个数。原创 2024-05-27 09:06:12 · 407 阅读 · 0 评论 -
CSP路径解析(简单易懂)
【代码】CSP路径解析(简单易懂)原创 2024-05-26 11:07:11 · 328 阅读 · 0 评论 -
CSP俄罗斯方块(简单易懂)
仔细看题,题目里写的是,只删除最左端的列,也就是说不管图案在哪里,都只删除最左端的一列。,也只删除最左列,即从第k列开始放的图案是。逆天了,我只能说CSP的出题人完全不靠谱。结果只拿到了60分。原创 2024-05-26 10:33:27 · 277 阅读 · 0 评论 -
CSP模板生成系统
5次CSP模板生成系统原创 2024-05-24 22:01:17 · 486 阅读 · 0 评论 -
3498. 日期差值
对每个日期,都计算从第一年开始算当前是第几天,然后两者做一下差就行了。这道题其实难度并不大,就是实现起来的方式有所不同。给出两个日期,计算两个日期相差了多少天。原创 2024-04-01 13:52:58 · 197 阅读 · 0 评论 -
146. 序列
然后,这 n 个数字,不就相当于你已经排好序的从小到大的第一排数字嘛,你接下来得到的第三排序列,不就相当于刚刚第二排的序列嘛?那这里你就会想到,我把第一排先排个序,再和第二排进行加和,那这次得到的n个数字不就是a0为基础的n个数了么。你就会想到一个只有n个空间的数组不就行了,先用第一排的第一个数字,加上第二排的n个数字,得到了最初的n个数字。然后,你就发现没有然后了。因为第一排的那个数字,你不知道他在第一排里面是多大,所以和第二排加和后你也不知道这些数字和第一排其他数字加上第二排相比是怎样的个大小关系。原创 2024-03-31 22:20:08 · 653 阅读 · 0 评论 -
331. 验证二叉树的前序序列化
那我们首先定义一个num,表示我们当前可以走的路的数量,因为我们开始一定是可以走根节点的,然后开始从根节点开始遍历,当前位置是数字,就num++,说明可以往下面走;当我们从前遍历到某一个位置的时候,该位置为数字,就说明他是可以继续向前走的,当该位置是#,就说明这个位置走不了了,只能往回走。例如,上面的二叉树可以被序列化为字符串 “9,3,4,#,#,1,#,#,2,#,6,#,#”,其中 # 代表一个空节点。输入: preorder = “9,3,4,#,#,1,#,#,2,#,6,#,#”原创 2024-03-31 10:27:26 · 508 阅读 · 0 评论 -
4262. 空调
那差分数组的操作就是每次选择一个小于零的数加一,同时选择一个大于零的数减一,也就是我们上面说的对某一段进行加一操作。那像这种情况其实就是从数组的某一段开始不为零,只需要在差分数组两端操作这个数字就可以了,所以操作的次数也就是差分数组的数值。将某一段的数字全部加一,就是将差分数组中的左端点加一,右端点减一。你可以进行的操作的是选择B中连续的一段,使得选中的段中每个数加一或减一,问最少可以执行多少次这样的操作,使得A等于B。同理将某一段的数字全部减一,就是将差分数组的左端点减一,右端点加一。原创 2024-03-30 22:06:05 · 167 阅读 · 0 评论 -
质数筛法--埃式筛和线性筛
质数筛原创 2023-05-05 14:17:04 · 49 阅读 · 0 评论 -
计算机算法与分析--算法实现题1
计算机算法与分析第一章------算法实现题原创 2022-11-01 20:02:30 · 308 阅读 · 0 评论 -
深度学习入门--计算机视觉--1(看了就会)
垂直边缘检测、Padding、valid卷积、same卷积、卷积步长、三维卷积、手推卷积原创 2022-10-17 15:19:21 · 943 阅读 · 0 评论 -
第六章-Python数据可视化--3
Python数据可视化3,热力图,气泡图,散点图以及多个图形的合并。原创 2022-10-13 21:22:26 · 1948 阅读 · 1 评论 -
第六章-Python数据可视化--2
Python数据可视化,折线图、小提琴图、箱线图、直方图和核密度图的实现。原创 2022-10-11 20:33:48 · 5208 阅读 · 5 评论 -
第六章-Python数据可视化--1
第六章-Python数据可视化--1,离散变量的可视化原创 2022-10-09 20:51:16 · 842 阅读 · 0 评论 -
第五章-Python数据处理工具--Pandas
Python数据处理工具--Pandas原创 2022-10-04 20:29:14 · 2170 阅读 · 1 评论 -
第五章-Python数据处理工具Pandas--1
Python数据处理工具Pandas原创 2022-09-29 17:35:06 · 637 阅读 · 0 评论 -
最优化理论与方法2
凸优化问题。原创 2022-09-26 14:21:48 · 440 阅读 · 0 评论 -
最优化理论与方法1
最优化理论与方法原创 2022-09-25 21:07:43 · 3142 阅读 · 0 评论 -
第四章-Python数值计算工具-Numpy
Python数值计算工具----Numpy原创 2022-09-25 12:53:17 · 664 阅读 · 0 评论 -
第三章-Python基础易忘且实用的知识点
Python基础易忘且使用的知识点原创 2022-09-22 15:28:43 · 541 阅读 · 1 评论 -
为什么会过拟合?判断依据?训练集验证集和测试集之间的关系?
为什么会过拟合?判断依据?训练集、验证集和测试集之间有什么关系?原创 2022-09-15 19:12:15 · 1502 阅读 · 2 评论 -
梯度下降、损失函数、神经网络的训练过程
梯度下降是什么?损失函数是什么?原创 2022-09-13 18:35:32 · 679 阅读 · 0 评论 -
计网-习题
习题一:假设一个IP分组头部长度为20B,数据字段长度为2000B。分组从源主机到目的主机要经过2个网络。这两个网络允许通过的最大传输单元分别是1500B和576B。请问:该IP分组通过两个网络时,需要如何进行分片?解:已知:IP分组头部长度为20B,数据字段长度为2000B。由于分组总长度都超过了两个网络的最大传输单元值,因此必须要分片。在分片过程中需要在每个分片的头部保留分组头部20B。(1)经过第一个MTU = 1500B的网络,需要分为两个片。P1 = 1480B + 20B =1500BP原创 2021-06-20 13:46:03 · 4796 阅读 · 2 评论 -
贪心和动态规划的区别
举个很简单的例子,区别就显而易见了。你有1元、2元、5元的硬币各5枚,问付款26元所需的最少硬币数量。首先贪心怎么做呢?那当然是越贪越好。从五元的拿起,拿五个,然后是2元,最后1元,需要6个。那dp应该怎么做呢?写出状态转移方程:d[0]=0,d[i]=min(d[i],d[i-vj[j]]+1)可见,贪心是贪心解决子问题得到子问题的最优解,即最优子结构,最终结果=最优子结构+剩下子问题的最优解。而dp则要通过状态转移方程一步步的根据前一步状态的结果来得到当前状态的最优解。具体代码可见另一原创 2022-04-05 00:07:13 · 228 阅读 · 0 评论 -
基本算法小结
递归什么是递归呢?想要知道什么是递归,你就得先知道什么是递归;要想知道什么是递归,你就得先知道什么是递归…ok这就是递归的定义。递归的要义:1.明确递归的逻辑,确定递归的公式2.明确递归的边界,即到哪一步为止eg:Fibonacci数F(0)=F(1)=1,F(n)=F(n-1)+F(n-2) n>=2;显然,递归的公式已经给出,而递归的边界就是n为0和1的时候。ok现在两点要义都已明确,代码手到擒来。#include<iostream>using namespace s原创 2022-04-04 18:56:05 · 403 阅读 · 0 评论 -
质数筛
#include <cstdio>#include <cstring>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <cmath>#include <algorithm>#include<bits/stdc++.h>using namespace原创 2020-11-28 10:46:32 · 95 阅读 · 0 评论 -
STL与基本数据结构
容器:顺序式容器和关联式容器顺序式容器:vector,list,deque,queue,priority_queue,stackvector:动态数组,从末尾能快速插入和删除,直接访问任何元素。**list:**双链表,从任何地方快速插入与删除。deque:双向队列,从前面与后面快速插入与删除,直接访问任何元素。queue:队列,先进先出。priority_queue:优先队列,最高优先级元素总是第一个出列。stack:栈,后进后出。关联式容器:set:集合,快速查找,不允许重复值。原创 2020-10-11 18:58:05 · 103 阅读 · 0 评论 -
c++如何测试数据
测试:构造测试数据,可以把构造出的测试数据放在文件test.in里,将程序结果输出到文件test.out中。当然有时候不需要输出文件test.out,直接再屏幕上看输出结果就可以了。如何方便的测试他们:(1)在程序中加入测试代码freopen("test.in","r",stdin);freopen("test.otu","w",stdout);#endif(2)在行命令中重定向例如,生成的可执行程序是abc,在Windows或Linux的行命令中这样输入和输出到文件。abc<te原创 2020-10-11 18:29:03 · 1962 阅读 · 0 评论 -
斐波那契数列的第N项(矩阵快速幂)
模板:struct Matrix{ ll mat[2][2]; }; Matrix mul(Matrix a,Matrix b,ll mod){ Matrix ans; for (int i=0;i<2;i++){ for (int j=0;j<2;j++){ ans.mat[i][j]=0; for (int k=0;k<2;k++){原创 2020-09-08 14:17:07 · 167 阅读 · 0 评论 -
最长回文子串 最长回文子序列
1.最长回文子序列(可以不连续)#include<iostream> #include<string> #include<algorithm> #include<bits/stdc++.h>using namespace std; //递归方法,求解最长回文子序列 int lps(char *str, int i, int j) { if (i == j) return 1; //只转载 2020-08-09 17:32:08 · 202 阅读 · 0 评论 -
1384 全排列
给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”,输出为:112311321213123113121321211321312311311231213211输入输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)输出输出S所包含的字符组成的所有排列输入样例1312输出样例11231132121312311312132121132131231131123121原创 2020-08-09 17:20:58 · 109 阅读 · 0 评论 -
常用数论板子
费马小定理:欧拉定理:若正整数 a , n 互质,则 aφ(n)≡1(mod n) 其中 φ(n) 是欧拉函数(1~n) 与 n 互质的数。费马小定理:对于质数p,任意整数a,均满足:a的p次幂≡a(mod p)欧拉定理的推论:若正整数a,n互质,那么对于任意正整数b,有a的b次幂≡a的b mod φ(n)次幂(mod n)(因为mod是质数,那么φ(mod)= mod-1)快速幂:int quick(int a,int b,int c) { int ans=1;原创 2020-08-09 13:58:56 · 227 阅读 · 1 评论 -
RMQ(ST算法)一看就会
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。本文介绍一种比较高效的ST算法解决这个问题。ST(Sparse Table)算法可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询。1)预处理设A[i]是要求区间最值的数列,F[i, j]表示从第i个数起连续2^j个数中的最大值。(DP的状态)例如:A数列为:3 2 4 5 6转载 2020-08-07 10:01:31 · 258 阅读 · 0 评论 -
计算十进制数在二进制中1的个数
O(logn) 的解法:int count = 0;while(n != 0){ if(n % 2 == 1) { count++; } n = n >> 1;}O(n) 的解法:int main() { int n,i; int f[1001]; f[0] = 0; scanf("%d", &n); for(i = 1; i <= n; i++原创 2020-08-02 12:41:25 · 483 阅读 · 0 评论 -
最长上升子序列(LIS)
概述:关于LIS部分,本篇博客讲一下LIS的概念定义和理解,以及求LIS的三种方法,分别是O(n^2)的DP,O(nlogn)的二分+贪心法,以及O(nlogn)的树状数组优化的DP,最后附上几道非常经典的LIS的例题及分析。1.动态规划我们要求n个数的最长上升子序列,可以求前n-1个数的最长上升子序列,再跟第n个数进行判断。求前n-1个数的最长上升子序列,可以通过求前n-2个数的最长上升子序列……直到求前1个数的最长上升子序列,此时LIS当然为1。让我们举个例子:求 2 7 1 5 6 4 3 8原创 2020-07-29 10:51:55 · 228 阅读 · 0 评论 -
字典序最大的子序列(维护单调栈)
题意:找到给出序列的字典序最大的子序列思路:维护单调栈即可代码:#include <cstdio>#include <cstring>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <cmath>#include <algorithm>#include原创 2020-07-14 17:12:24 · 311 阅读 · 0 评论 -
辗转相除法
#include<bits/stdc++.h>using namespace std;int gcd(int x , int y){ return (x%y==0)?y:gcd(y,x%y);}int main(){ int a , b; cin >> a >> b; int res = 0; res = gcd(a,b); cout << res << endl; return原创 2020-07-03 14:24:55 · 310 阅读 · 0 评论