自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nerdant

记录所学,所思,所感,所想。坚信积累的力量。

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

原创 【算法模板】算数基本定理

#include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef long long ll;const int maxn=1e6+2;bool is[maxn];int cnt =0;ll p[maxn], prim[maxn];int k;void...

2019-11-01 22:04:18 215

原创 【算法模板】矩阵快速幂

#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;typedef long long ll;int n,m;struct Mat{ ll a[102][102];};Mat s,B;Mat matrixmul(Mat a,Mat b)//矩阵乘法{ Mat c; ...

2019-10-22 19:33:50 148

原创 数据结构之字符串

字符串这一章的大体框架为:1、模式匹配算法(BF,KMP)2、多维数组的寻址,存储表示法3、矩阵的压缩存储一、模式匹配算法1、所谓的BF算法,就是逐个比较的暴力方法,时间复杂度为O(n*m),比较低效。当待匹配串与模式串不匹配时,从头开始待匹配串向后移一位,再比较。2、KMP利用最长公共前后缀的特点,每次匹配失败后不需要从头开始。需要预先处理出前缀表,根据前缀表来判...

2019-10-20 21:55:53 925

原创 【算法模板】KMP(关键在于next数组的理解和灵活运用)

#include<bits/stdc++.h>using namespace std;int Next[1000];int Kmp_Search(char* s, char* p){ int i = 0; int j = 0; int sLen = strlen(s); int pLen = strlen(p); while (i < sLen &&a...

2019-10-14 20:59:41 151

原创 【算法模板】RMQ

#include<iostream>#include<bits/stdc++.h>using namespace std;int a[10100];int f[10100][200];void ST_prework(int n){ for(int i=1;i<=n;i++) f[i][0]=a[i]; int t=log(n)/log(2...

2019-10-13 11:29:38 123

原创 【算法模板】字典树

#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;const int SIZE=1000;int tot=1;int trie[SIZE][26];bool endd[1000000];char s[1000...

2019-10-10 16:50:52 149

原创 数据结构之栈和队列

0、概述:栈和队列是两种特殊的线性表,用于组织需要后到先处理或先到先处理的数据。本身数据与数据之间还是线性结构,但是整体的组织方式是有先后,有头有尾的。一、栈特点:线性,数据先进后出,限定仅在表的一端进行删除和插入操作。我们可以借助数组来实现栈的构造,也可以利用链表。入栈template <class T>void seqStack<T>::P...

2019-10-06 20:24:04 106

原创 数论好题汇总~~~持续更新

HDU 3579题意:把x个硬币分为几个相同大小的组,每组Mi个硬币,还剩Ai枚硬币,问有多少硬币?正解:本题明显要列出多组同余方程式求解,可以用中国剩余定理直接求解同余方程的解,需要注意此代码中的crt参数有3个代码:https://blog.csdn.net/weixin_43238423/article/details/101221559/------------------...

2019-09-23 12:31:04 457

原创 数据结构之线性表

0、概述:任何数据结构都对应着存储结构和逻辑结构,存储结构分为顺序存储和链式存储,逻辑结构分为数组(线性表)、树、图。线性表是零个或多个具有相同类型的数据元素的有限序列。线性表的存储结构同样分为顺序存储和链式存储,我们要表示或者存储一个线性表,必须要连同逻辑结构一并存下来,而数组就是一种线性表,它的逻辑结构就是“相邻连续”(物理地址),声明的时候已经开辟了连续的内存单元,在内存层面就已经完...

2019-09-22 16:26:46 207

原创 数论模板~~~持续更新

这份代码是队里数学大佬YZQ的,码风很亲和(逃)学习一下。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=1000007;const ll N=100010;ll v[N],prime[N],phi[N],v1[N],miu[N],m;struct mat {...

2019-08-16 21:31:22 190

原创 【随笔】就几句话

继续沉淀自己。时常会焦虑,时常也想停下来休息,但就是不敢,因为在等一个机会。看到知乎有人问敲代码是否要噼里啪啦很快才可以。很多专业程序员写了回答。能够确定的是在一些难解决的问题上, “思考清楚问题” 这一环节一定会占有相当大比例。思考清楚后,敲代码也许只是体力劳动。敲得飞快反而是在写hello world。这是否和你一直以来的认知冲突呢?慢下来,就是快。嗯,就这样。...

2020-06-07 21:17:00 317

原创 【言简意赅聊设计模式】中介者模式

中介者模式是一种对象的行为模式。当多个对象彼此互相作用,形成一个作用系统时,我们可以称此种对象为同事对象(colleague)。可以想到此系统中对象与对象治之间的耦合程度是很深的,为了实现系统的稳定,实现松耦合,引入一个中介(mediator)又名调停者。图片来自:特种兵-AK47对象与对象的直接相互作用使得系统过度耦合。引入中介后的星形结构,使得结构相对稳定,当修改或者引入不会造成大量的代码改动,维持了系统的稳定性。调停者模式包括以下角色:1、抽象调停者2、具体调停

2020-06-06 19:35:53 236

原创 【leetcode记录帖】【7】对称二叉树

https://leetcode-cn.com/problems/symmetric-tree/submissions/分析:要使得整个二叉树是镜像对称的,则必须要求每个子结构:左节点的左孩子等于右节点的右孩子,右节点的左孩子等于左节点的右孩子,符合递归寻找最小子结构的性质。所以使用DFS。递归终止条件是:1、两节点为空2、两节点有一个为空3、两节点的值不相等/** * Definition for a binary tree node. * struct Tree..

2020-06-06 12:35:07 238

原创 【数论】px+qy不能表示的最大的数的证明

结论:如果a,b均是正整数并且互质,那么由 不能凑出的最大正整数是 。1、证明不可能等于 :反证法:假设,那么即可推出,,,由于ab互质,即,由于,所以,所以同理可得:所以,矛盾2、证明 一定可以表示成 用到该算法的题目:ACWing525ACWing1205...

2020-06-05 19:55:58 625

原创 【数学】买不到的数目

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数n,mn,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数..

2020-06-05 18:08:54 881 2

原创 【leetcode记录帖】【6】Merge Sorted Array

https://leetcode-cn.com/problems/merge-sorted-array/1、利用arraycopy函数合并后排序,官方的解答太秀了。我确实没想起来这样做。时间复杂度比较大。class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { System.arraycopy(nums2,0,nums1,m,n);

2020-06-05 13:49:54 170

原创 【言简意赅聊设计模式】命令模式

命令模式属于对象的行为模式。命令模式把发出命令的责任和接受命令的责任放到两个不同的对象中,二者独立开来。命令模式的优点  ●  更松散的耦合  命令模式使得发起命令的对象(客户端)与执行命令的对象(接受者)完全解耦。  ●  更动态的控制  命令模式把请求封装起来,可以动态地对它进行参数化、队列化和日志化等操作,从而使得系统更灵活。  ●  很自然的复合命令  命令模式中的命令对象能够很容易地组合成复合命令,也就是宏命令,从而使系统操作更简单,功能更强大。  ●  

2020-06-05 12:00:00 164 1

原创 【言简意赅设计模式】职责链模式(行为设计模式)

说明:责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。@特种兵-AK47https://blog.csdn.net/m13666368773/article/details/7702368责任链模式涉及到的角色如下所示:  ●  抽象处理者(Han..

2020-06-05 10:15:45 168

原创 【JavaWeb边学边做】开发流程记录

1、表结构设计:搞清楚项目各个模块之间的关系,抽象成为表,需要注意标识外码。2、实体类设计根据表设计实体类3、DAO设计DAO是Data Access Object的缩写,这些类专门用于进行数据库访问的操作。//。。。...

2020-06-04 22:05:56 198

原创 【算法反刍】递归与递推

对于递归和递推的非常专业的定义和解释在这里就不再copy了,私以为算法的关键是运用和实践,就好比围棋,规则简单但是入门的门槛很高,就算熟练记忆规则也没法下好一盘棋。Likewise,对于算法学习,最关键是有一个算法的惯性在脑子里,这要比熟记定义重要得多,因为这需要深刻的掌握。对于算法的学习需要的是长久的训练和揣摩。无他,唯手熟尔!一、递归:自身调用自身的一种算法形式。这也是我们平时所说的dfs(深度优先搜索)。Q1、如何构建递归搜索树?Q2、当前是递归搜索树的第几层?Q3、从哪一层开始递归?

2020-06-04 22:02:49 188

原创 【命中定数】【含泪写下】【望诸君勇敢追梦】一个失败者的详谈:为什么我的acm生涯是失败的?

看到标题你也知道了我并不是一个成功的ACM选手,并且在疫情期间我退出了ACM实验室。所以如果你想来看到一些成功的经验,对不起,这里没有,这里只有失败的教训。我自己一直在回避这个话题,今天写出来,一是我踩过的坑也许能给许许多多的迷茫的大学生和ACMer以启发,二是也给我自己一个反思和发泄的窗口。当然,这仅仅只是我个人的经历而已,文章里的一些想法也带着我的主观色彩,诸位大佬轻喷。你想获得什么,你就去追求什么。回忆是思念的愁我是一所双非本科的学生,带着不甘和热血来到现在的学校,内心极度渴望做出一些

2020-06-04 21:10:47 1051 2

原创 【言简意赅聊设计模式】模板方法模式

模板方法模式是一种行为设计模式。模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。在软件工程中,它是一种软件设计模式,和C++模板没有关连。在抽象类声明一套通用的逻辑框架,称为模板方法。子类重新实现抽象方法。实例:制作豆浆需要的步骤是:选材--添加配料--浸泡--放入豆浆机打碎,实现制作豆浆的流程。具体的豆浆有黑豆豆浆和花生豆浆。UML图:package moban;publ

2020-06-04 12:43:36 175

原创 【leetcode记录帖】【5】Maxmum Subarray

最大子序和问题。要求连续数组和最大。1、纯暴力,枚举区间端点,三重循环O(n^3)超出时间限制class Solution { public int maxSubArray(int[] nums) { int maxn=Integer.MIN_VALUE; if(nums.length==1) return nums[0]; int sum=0; for(int i=0;i<nums.length;i++)

2020-06-04 11:21:24 171 2

原创 【言简意赅聊设计模式】组合模式

介绍组合模式,又叫部分整体模式。“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。”“当发现需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑组合模式了。”是一种结构性模式,当我们要处理的对象可以生成一棵树形结构(比如学校学院系的关系),而我们要对书上的节点和叶子进行操作时,它能够提供一致的方式,而不用考虑它是节点还是叶子。实例:大学--学院--系层次如何

2020-06-03 12:37:03 143

原创 【LeetCode记录帖】【4】Remove Duplicates from Sorted Array

题目链接https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/1、反正是vector嘛,直接erase删除就完了,当然这可能不是本题最好的解法,但绝对是最无脑的。erase函数需要注意有返回值,返回的是删除元素的下一个位置。class Solution {public: int removeDuplicates(vector<int>& nums) { for(auto

2020-06-03 10:42:50 716 1

原创 【LeetCode记录帖】【3】Merge Two Sorted Lists

题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/1、递归解法。思路:每次mergeTwoLists出来的子结构都是当前最小的。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullpt...

2020-06-03 09:53:46 115 1

原创 【LeetCode记录帖】【2】Valid Parentheses

题目连接https://leetcode-cn.com/problems/valid-parentheses/解法:利用压栈的方法,将栈的头部和相对于字符串的后一个字符进行比较,若匹配就头部出栈,不匹配就入栈,最终如果栈为空即达到有效串的要求。特判一下空串。class Solution {public: bool isValid(string s) { if(s=="") return true; stack<int> sta;

2020-06-03 09:11:13 110 1

原创 【leetcode记录帖】【1】TwoSum

题目链接:https://leetcode-cn.com/problems/two-sum/1、暴力法:双重循环。复杂度O(n)。class Solution { public int[] twoSum(int[] nums, int target) { int a[]=new int[2]; for(int i=0;i<nums.length;i++) { for(int j=i+1;j<nums.

2020-06-02 23:08:01 107

原创 【言简意赅聊设计模式】原型模式

原型模式:一种创建型的设计模式。其本质是复制已经存在的实例,多用于资源耗费较多的大量对象的创建。可以拿孙悟空拔几根毫毛复制自己类比,原型模式就是实现自我复制。GOF:Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype. (使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。)在Java中可以直接使

2020-06-02 20:03:32 167

原创 【言简意赅聊设计模式】享元模式

三个月没学编程的班花找到了人称“设计模式扛把子”的Tony老师,并发誓一定要把享元模式搞明白。Q:享元模式的享元是什么意思?A:所谓享元就是共享对象(别想歪了),享元模式的关键即提供一个包含各种对象的池,那么不管某个对象你创建多少遍,其实都是最开始创建并存到享元池里的那一个。Q:听不懂,能举个例子吗?A:比如作为全公司唯一的程序员的你接到任务需要开发一些网页,包括三个技术博客网页,五个体育新闻网页,两个英语学习网页,四个LeetCode索引网页等等,最直接最无脑的做法就是一个网页一个网页的做

2020-06-01 19:15:32 211

原创 利用springboot框架布局java后台数据(只有自己能看懂版)

1、创建java后台项目<1>main方法里启动springboot:SpringApplication.run(DemoApplication.class, args);参考资料<2>操作类端需添加适当引用以提供接口访问@RestController//程序必须要有接口@GetMapping("/Hello")//访问接口2、编写可供浏览器访问的数据后台3、利用小程序访问java后台数据这一块是js的内容:页面请求后台数据,请求成功后将数

2020-05-29 17:03:26 202

原创 【言简意赅聊设计模式】依赖倒置原则

解释:依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。即所谓的面向接口编程。接口就是规范。依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给它们的实现类去完成。【言简意赅】:我这个人做事要先按照核心原则(接口或抽象类规范)去做,遇到具体问题要具体分析(派生类继承),但是核心原则一百年不动摇。其实就是定义接...

2020-05-16 18:49:44 129

原创 【言简意赅聊设计模式】:里氏代换原则

里氏代换原则:通俗来讲:子类可以扩展父类的功能,但不能修改父类的功能。即子类继承父类时,除添加新的方法完成新增功能外,不能重写父类的方法。里氏替换原则的主要作用如下。里氏替换原则是实现开闭原则的重要方式之一。 它克服了继承中重写父类造成的可复用性变差的缺点。 它是动作正确性的保证。即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。言简意赅:儿子要听老爸话,可以比老爸懂得多,但不能违背老爸的意志!几维鸟是一种特殊的鸟类,不具备飞行能力,即speed为0,理所当然飞.

2020-05-16 16:41:47 135

原创 如何利用反射技术和配置文件实现简单工厂模式的解耦合?

棘手的问题:在使用简单工厂模式时,如果有对工厂类进行添加case或者修改实例化对象名等需求,需要重新修改和编写程序并进行编译,很不方便,类与类耦合性较强!解决方法:可以使用反射,只需要对字符串进行修改即可进行实例化修改操作,实现解耦合。反射的书写格式为:首先:必须要有命名空间。using System.Reflection;其次:Operation oper=(O...

2020-03-13 23:02:00 483

原创 寒假总结

怎么说呢,很难受吧,每次的cf我都打不了,种种方法也试了,但是就是不管用。难道非fan不可了?话说,题目也没做多少呢,就感觉一种进步不大的空洞感吧,还是应当继续努力,也要注意努力的方法。数论,数据结构,dp,贪心,知识点一大堆嗷嗷待哺,等着我。我告诉自己重点是数论,但是作为一个老牌数论选手(并不),我不想再继续学这破玩意了,虽然做一道题还是吃力,就很难受就完了,不想学数论也得继续啊,要不然推个破公...

2020-02-06 23:42:44 195

原创 寒假训练总结

这几天打算学习一些新的算法。数论的题目,做肯定要做的,就是做一道题有没有成效的问题。

2020-01-28 22:03:44 147

原创 寒假训练日志1

今日复习数论算法。为刷题做准备。看了几个题目,都好难哦。

2020-01-20 20:59:35 162

原创 2020/1/19总结博客

之前因为生病早早回到家里修养身体,耽误了一些训练。打算在寒假里做老师发的专题和打codeforce。我也得感叹一句,这学期太累了,回家这几天的放松,是完全必要的,是为了以后的拼搏打基础。这学期期末考试大型翻车,成绩挺惨的,我得反思一下了,想想怎么走下一步了。身体是革命的本钱。...

2020-01-19 21:40:36 127

原创 2019/12/29学习总结

放了假我会好好总结这一学期,这一学期是具有战略指导意义的一个学期。这周依旧是备考。明天就考试了,期待考个好成绩。周六去办新生赛,看着新生们努力拼搏的样子,不禁想起来自己那时候,那时候的我很菜啊,对acm也不在意,重心基本上在学习专业课和适应大学生活上,新生赛也没有取得好的成绩,我记得排名是很往下。但是或许是那次比赛点醒了我,我意识到我真的该找到自己热爱的东西去坚持了,去努力了,这世界很浮躁...

2019-12-29 17:19:56 140

原创 acm周末总结

acm这周就是刷题!这套题复习了一些数论知识,有欧拉函数,素数筛,矩阵快速幂,强化了数学思维。很多题打表可以做但是那样不是目的。推公式,推规律才是真理。复习备考也开始了。...

2019-12-22 21:45:44 128

空空如也

空空如也

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

TA关注的人

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