weixin_30432579的博客

私信 关注
Claire_ljy
码龄6年
  • 447,595
    被访问量
  • 暂无
    原创文章
  • 45,958
    作者排名
  • 70
    粉丝数量
  • 于 2015-08-07 加入CSDN
获得成就
  • 获得56次点赞
  • 内容获得0次评论
  • 获得448次收藏
荣誉勋章
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

实现一个正则表达式引擎in Python(三)

项目地址:Regex in Python前两篇已经完成的写了一个基于NFA的正则表达式引擎了,下面要做的就是更近一步,把NFA转换为DFA,并对DFA最小化DFA的定义对于NFA转换为DFA的算法,主要就是将NFA中可以状态节点进行合并,进而让状态节点对于一个输入字符都有唯一的一个跳转节点所以对于DFA的节点就含有一个nfa状态节点的集合和一个唯一的标识和对是否是接收状态的fla...
转载
138阅读
0评论
0点赞
发布博客于 2 年前

实现一个正则表达式引擎in Python(二)

项目地址:Regex in Python在看一下之前正则的语法的 BNF 范式group ::= ("(" expr ")")*expr ::= factor_conn ("|" factor_conn)*factor_conn ::= factor | factor factor*factor ::= (term | term ("*" | "+" | "?"))*term...
转载
117阅读
0评论
0点赞
发布博客于 2 年前

实现一个正则表达式引擎in Python(一)

前言项目地址:Regex in Python开学摸鱼了几个礼拜,最近几天用Python造了一个正则表达式引擎的轮子,在这里记录分享一下。实现目标实现了所有基本语法st = 'AS342abcdefg234aaaaabccccczczxczcasdzxc'pattern = '([A-Z]+[0-9]*abcdefg)([0-9]*)(\*?|a+)(zx|bc*)([a-z]...
转载
212阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(九):文件系统

前言这个应该是这个系列的尾声了,一个完整的操作系统可能最主要的也就是分成这几大模块:进程管理、内存管理和文件系统。计算机以进程为基本单位进行资源的调度和分配;而与用户的交互,基本单位则是文件生磁盘文件正是对生磁盘的抽象磁盘的组成一个磁盘由多个盘面串联而成,而一个盘面又被分为磁道,磁道又由扇区组成。磁盘的访问单元就是扇区,一个扇区为512字节磁盘的使用CPU向磁盘的控...
转载
198阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(完结):总结和系列索引

前言从一开始的引导程序到现在的文件系统已经有十篇了,算是自己对操作系统的学习的一个笔记,原本是想结合自己之前写的玩具操作系统FragileOS,但是之后就转到了结合Linux 0.11的代码去写这个笔记。因为现在是马上开学了,后劲不足,也有点焦虑,所以这个系列写得非常乱。没有之前那个从零写编译器的系列学习笔记写得顺畅,收获也没有那么多。所以之后开学后可能会打算再读一下Linux 0....
转载
136阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(八):内存管理和段页机制

前言多进程和内存管理是紧密相连的两个模块,因为运行进程也就是从内存中取指执行,创建进程首先要将程序和数据装入内存。将用户原程序变成可在内存中执行的程序,而这就涉及到了内存管理。内存的装入绝对装入。在编译时,如果知道程序将驻留在内存的某个位置,编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块的地址,将程序和数据装入内存。装入模块被装入内存后,由于程序中的逻辑地址与实际地...
转载
74阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(七):进程的同步与信号量

前言在多进程的运行环境下,进程是并发执行的,不同进程间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,达到资源共享和进程协作,避免进程之间的冲突,引入了进程同步的概念。临界资源多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次只允许一个进程使用的资源成为临界资源。对临界资源的访问,必须互斥的进行。每个进程中,访问临界资源的那段代码成为临...
转载
53阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(五):故事的高潮之进程和线程1

前言为什么取这个标题呢?一是进程和线程是作为操作系统里最重要最核心的一部分。二是确实吃冰棍拉冰棍,没话,强行凑标题和之前的标题差不多字数。前一章写了系统调用的过程,算是一个小插曲,这个部分不管在哪里应该都是可以的。现在的这个系列已经和之前的标题渐行渐远了,原本是想以之前写的一个玩具型操作系统FragileOS为主线,但是在看书学习的过程中稍微改了一下方向,已经不是特别关注一个操作系...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(六):进程的调度

前言既然引进了多进程,其实也就是在进程之间来回切换,那么就会有进程之间的调度问题。实则是在可运行进程之间分配有限的处理器时间资源的内核子系统。几个简单的CPU调度算法First Come, First Served(FCFS)其实就是一个先进先出队列了,也就是说先申请的进程,先执行。当CPU空闲时,它会分配给位于队列头部的进程,并且这个运行进程从队列中移去。FCFS调度代码编...
转载
75阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(三):操作系统的启动之保护模式

前言上一篇其实已经说完了boot的大致工作,但是Linux在最后进入操作系统之前还有一些操作,比如进入保护模式。在我自己的FragileOS里进入保护模式是在引导程序结束后完成的。实模式到保护模式属于操作系统的一个大坎,所以需要先提一下从实模式到保护模式实模式和保护模式都是CPU的工作模式,它们的主要区别就是寻址方式实模式出现于早期8088CPU时期。当时由于CPU的性能有...
转载
112阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(四):操作系统之系统调用

前言最近有点事情,马上要开学了,所以学习的脚步就慢下来了。这一篇主要是来说操作系统的系统调用的,像C语言的printf深入到内部就是一个有关屏幕输出的系统调用什么是系统调用之前提过操作系统是对硬件的抽象,也是软硬件之间的一层。之前比如如果我们想要在屏幕上输出一些字符,就需要一些指令操作,然后把数据放到显存上。但是在有了操作系统后,就不需要这样做,也不能这样做了。这时候只要操作系统提...
转载
115阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(一):开篇

前言有人说程序员的三大浪漫分别是编译原理、操作系统和计算机网络在之前完成了一两个小软件和网站后遇见了编译原理,也不知道为什么就傻傻的学,还写了一个从零写编译器的系列学习笔记,不过都是小打小闹,只能算作摸到了一点点入门的门槛。再后来想深入学习的时候,因为暑假在家很多书买来的话再带去学校很麻烦,就索性找了一本操作系统的书,也不懂原理就撸了一个玩具型的操作系统几句感概在身边同学都...
转载
45阅读
0评论
0点赞
发布博客于 2 年前

我是如何学习写一个操作系统(二):操作系统的启动之Bootloader

前言今天本来的任务看书和把之前写的FragileOS整理一下,但是到现在还在摸鱼,书也只看一点。后来整理了一下写这个系列的思路,原本的目的是对操作系统原理性的学习和对之前写的一个玩具型操作系统的回顾,就是想对操作系统的知识的轮廓能有一个了解,现在想来想减少对之前写的系统的回顾,毕竟也只有2000多行,但是还是要有对整个思路的展现。然后增加对Linux 0.12源码的一些学习。所以离标题...
转载
79阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(完结):总结和系列索引

前言这个系列算作我自己的学习笔记,到现在已经有十三篇了,加上这篇一共十四篇。一步一步的从词法分析到语法分析、语义分析,再到代码生成,准备在这一篇做一个总结收尾和一个这个系列以前文章的索引。(另外,由于我现在的这个主题不能对markdown的一级标题作目录,所以这个系列文章的目录都是有问题的)索引从零写一个编译器(一):输入系统和词法分析从零写一个编译器(二):语法分析之前置知识...
转载
253阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(十三):代码生成之遍历AST

项目的完整代码在 C2j-Compiler前言在上一篇完成对JVM指令的生成,下面就可以真正进入代码生成部分了。通常现代编译器都是先把生成IR,再经过代码优化等等,最后才编译成目标平台代码。但是时间水平有限,我们没有IR也没有代码优化,就直接利用AST生成Java字节码入口进行代码生成的入口在CodeGen,和之前解释器一样:先获取main函数的头节点,从这个节点开始,先进入...
转载
276阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(十二):代码生成之生成逻辑

项目的完整代码在 C2j-Compiler前言在上一篇解释完了一些基础的Java字节码指令后,就可以正式进入真正的代码生成部分了。但是这部分先说的是代码生成依靠的几个类,也就是用来生成指令的操作。这一篇用到的文件都在codegen下:Directive.javaInstruction.javaCodeGenerator.javaProgramGenerator.jav...
转载
149阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(十一):代码生成之Java字节码基础

项目的完整代码在 C2j-Compiler前言第十一篇,终于要进入代码生成部分了,但是但是在此之前,因为我们要做的是C语言到字节码的编译,所以自然要了解一些字节码,但是由于C语言比较简单,所以只需要了解一些字节码基础JVM的基本机制JVM有一个执行环境叫做stack frame这个环境有两个基本数据结构执行堆栈:指令的执行,都会围绕这个堆栈来进行局部变量数组,参数...
转载
123阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(三):语法分析之几个基础数据结构

项目的完整代码在 C2j-Compiler写在前面这个系列算作为我自己在学习写一个编译器的过程的一些记录,算法之类的都没有记录原理性的东西,想知道原理的在龙书里都写得非常清楚,但是我自己一开始是不怎么看得下来,到现在都还没有完整的看完,它像是一本给已经有基础的人写的书。在parse包里一共有8个文件,就是语法分析阶段写的所有东西啦Symbols.javaProductio...
转载
147阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(九):语义分析之构造抽象语法树(AST)

项目的完整代码在 C2j-Compiler前言在上一篇完成了符号表的构建,下一步就是输出抽象语法树(Abstract Syntax Tree,AST)抽象语法树(abstract syntax tree 或者缩写为 AST),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。AST对于编译器是至关重要的,现在的编译型语...
转载
285阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(七):语义分析之符号表的数据结构

项目的完整代码在 C2j-Compiler前言有关符号表的文件都在symboltable包里前面我们通过完成一个LALR(1)有限状态自动机和一个reduce信息来构建了一个语法解析表,正式完成了C语言的语法解析。接下来就是进入语义分析部分,和在第二篇提到的一样,语义分析的主要任务就是生成符号表来记录变量和变量的类型,并且发现不符合语义的语句描述变量在C语言里对变量声...
转载
178阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(十):编译前传之直接解释执行

项目的完整代码在 C2j-Compiler前言这一篇不看也不会影响后面代码生成部分现在经过词法分析语法分析语义分析,终于可以进入最核心的部分了。前面那部分可以称作编译器的前端,代码生成代码优化都是属于编译器后端,如今有关编译器的工作岗位主要都是对后端的研究。当然现在写的这个编译器因为水平有限,并没有优化部分。在进行代码生成部分之前,我们先来根据AST来直接解释执行,其实就是对...
转载
62阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(八):语义分析之构造符号表

项目的完整代码在 C2j-Compiler前言在之前完成了描述符号表的数据结构,现在就可以正式构造符号表了。符号表的创建自然是要根据语法分析过程中走的,所以符号表的创建就在LRStateTableParser里的takeActionForReduce方法不过在此之前,当然还需要一个方便对这个符号表操作的类了这一篇主要的两个文件是TypeSystem.javaLRStat...
转载
561阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(六):语法分析之表驱动语法分析

项目的完整代码在 C2j-Compiler前言上一篇已经正式的完成了有限状态自动机的构建和足够判断reduce的信息,接下来的任务就是根据这个有限状态自动机来完成语法分析表和根据这个表来实现语法分析reduce信息在完成语法分析表之前,还差最后一个任务,那就是描述reduce信息,来指导自动机是否该进行reduce操作reduce信息在ProductionsStateNod...
转载
145阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(五):语法分析之自动机的缺陷和改进

项目的完整代码在 C2j-Compiler前言在上一篇,已经成功的构建了有限状态自动机,但是这个自动机还存在两个问题:无法处理shift/reduce矛盾状态节点太多,导致自动机过大,效率较低这一节就要解决这两个问题shift/reduce矛盾看上一节那个例子的一个节点e -> t .t -> t . * f这时候通过状态节点0输入t跳转到这个节点...
转载
40阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(四):语法分析之构造有限状态自动机

项目的完整代码在 C2j-Compiler通过上一篇对几个构造自动机的基础数据结构的描述,现在就可以正式来构造有限状态自动机我们先用一个小一点的语法推导式来描述这个过程s -> ee -> e + te -> tt -> t * ft -> ff -> ( e )f -> NUM初始化状态0是状态机的初始状态,它包含着语...
转载
187阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(一):输入系统和词法分析

项目的完整代码在 C2j-Compiler前言从半抄半改的完成一个把C语言编译到Java字节码到现在也有些时间,一直想写一个系列来回顾整理一下写一个编译器的过程,也算是学习笔记吧。就从今天开始动笔吧。一开始会先写一个C语言的解释器,直接遍历AST直接执行,再之后会加入生成代码部分,也就是编译成Java字节码支持C语言的大部分使用,具体可以到上面的链接去看,当然依旧是比玩具级还...
转载
74阅读
0评论
0点赞
发布博客于 2 年前

从零写一个编译器(二):语法分析之前置知识

项目的完整代码在 C2j-Compiler前言在之前完成了词法分析之后,得到了Token流,那么接下来就是实现语法分析器来输入Token流得到抽象语法树 (Abstract Syntax Tree,AST)。但是在完成这个语法分析器不像词法分析器,直接手撸就好了,还是需要一些前置的知识。这些前置知识在之前的博文都有提起过之前的博文目录项目的完整代码在 C2j-Compil...
转载
38阅读
0评论
0点赞
发布博客于 2 年前

shell (7)if 表达式

文件表达式if [ -f file ] 如果文件存在if [ -d … ] 如果目录存在if [ -s file ] 如果文件存在且非空if [ -r file ] 如果文件存在且可读if [ -w file ] 如果文件存在且可写if [ -x file ] 如果文件存在且可执行整数变量表达式if [ int1 -eq int2 ] 如果int1等于int2if [ int1 -n...
转载
17阅读
0评论
0点赞
发布博客于 2 年前

二叉树,建树,前序,中序,后序,递归 非递归

二叉树遍历:#include <iostream>#include <vector>#include <string>#include <sstream>#include<stack>#include<queue>using namespace std;struct BiTreeN...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

tensorflow 笔记 16:tf.pad

函数:tf.compat.v1.padtf.pad函数表达式如下:tf.pad( tensor, paddings, mode='CONSTANT', name=None, constant_values=0)函数用途:对各个维度进行填充,padding输入:  tensor :是要填充的张量;  shape 维度为 ...
转载
35阅读
0评论
0点赞
发布博客于 2 年前

第九章 结构体与共用体

C程序设计实验报告姓名:欧阳思健 实验地点: 514实验室 实验时间:2019年6月26日实验项目:9.3.1 结构体变量的应用9.3.2 结构体数组的应用9.3.3 共用体的应用9.3.4 结构体指针的应用一、实验目的与要求9.3.1 结构体变量的应用定义结构体类型struct date,它含有年、月、日3个成员;定义struct date类...
转载
34阅读
0评论
0点赞
发布博客于 2 年前

Mysql 中根据条件排序获取排名

1 SELECT user_id,left_credit,(@rownum:=@rownum+1) AS rownum2 FROM credit_user ,(SELECT @rownum:=0) r3 ORDER BY left_credit DESC上面示例根据left_credit字段条件进行倒序排序,然后通过rownum获取...
转载
293阅读
0评论
0点赞
发布博客于 2 年前

HTML常用标签及其全称

<a href="#">a 超级链接(anchor)</a><abbr title="abbreviation的简写">abbr 简写的(abbreviation)</abbr><acronym title="Jin Hua Tang is JHT">acronym 首字母缩略词(acronym) </acronym&...
转载
51阅读
0评论
0点赞
发布博客于 2 年前

如何复制CSDN上他人的博客文章到自己博客下

csdn博客中有很多优秀的文章,自己习惯在博客园记录,为了便于之后浏览,习惯复制到博客园收藏。问题是csdn 中复制全文,在博客园编辑器(TinyMCE编辑器)中粘贴时,图片无法直接粘贴过来,图片多的时候比较麻烦。怎样直接复制粘贴全文?解决方法参考:https://jingyan.baidu.com/article/0964eca24e159c8285f53618.html...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

OPGL+GLFW+GLEW配置详细步骤

转载自:https://blog.csdn.net/weixin_40921421/article/details/80211813本文设计的工具包:链接:https://pan.baidu.com/s/1Kcx-5x_NuB-JUFyCE_Bq1g 提取码:g445 复制这段内容后打开百度网盘手机App,操作更方便哦OPGL+VS2017+GLFW+...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

Eclipse vs IDEA快捷键对比大全

分类功能点Eclipse快捷键IDEA快捷键搜索搜索文本Ctrl + FCtrl + FCtrl + R 查找替换Alt + P/A 逐个/全部替换Alt + F3 查找当前选中词继续搜索Ctrl + K 向前Ctrl + Shift...
转载
50阅读
0评论
0点赞
发布博客于 2 年前

html文件中script标签放在哪里?

转载于:https://www.cnblogs.com/FengZeng666/p/11555484.html
转载
134阅读
0评论
0点赞
发布博客于 2 年前

idea中HTML格式化时标签缩进问题

在IntelliJ Idea中HTML格式化时,默认<head><body>以及<body>下的以及标签都不会缩进。解决方法:editor->code style->HTML->other->Do not indent children of删掉<html><head><body>这几...
转载
243阅读
0评论
0点赞
发布博客于 2 年前

质因数的个数 (分解质因数)

链接:https://www.nowcoder.com/questionTerminal/20426b85f7fc4ba8b0844cc04807fbd9?f=discussion来源:牛客网[编程题]质因数的个数热度指数:20444 时间限制:1秒 空间限制:65536K求正整数N(N>1)的质因数的个数。 相同的质因数需要重复...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

关于内层div设置margin-top不起作用的解决方案

代码如下:<div>上部层</div><div> <!--父层--><div style="margin-top:200px;">子层</div></div>理想中的效果是父层和上部层贴边显示,子层距离父层顶部有200px的距离,在ie中正常,但是在ff中却出现问题,子层和父层...
转载
55阅读
0评论
0点赞
发布博客于 2 年前

Prime Ring Problem HDU - 1016 (dfs)

Prime Ring ProblemHDU - 1016A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent ci...
转载
59阅读
0评论
0点赞
发布博客于 2 年前

约数的个数

约数的个数题目描述输入n个整数,依次输出每个数的约数的个数输入描述:输入的第一行为N,即数组的个数(N<=1000)接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)当N=0时输入结束。输出描述:可能有多组输入数据,对于每组输入数据,输出N行,其中每一行对应上面的一个数的约数的个数。示例1...
转载
65阅读
0评论
0点赞
发布博客于 2 年前

公共钥匙盒 ccf

试题编号:201709-2试题名称:公共钥匙盒时间限制:1.0s内存限制:256.0MB问题描述:问题描述  有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒...
转载
61阅读
0评论
0点赞
发布博客于 2 年前

C++使用stringstream分割字符串

转载于:https://www.cnblogs.com/FengZeng666/p/11518323.html
转载
307阅读
0评论
0点赞
发布博客于 2 年前

IDEA设置谷歌浏览器和火狐浏览器打开

我们在软件的功能栏中选择file,然后使用鼠标点击settings,进入到软件的详细设置界面进入后,我们可以看到很多设置项,然后我们使用鼠标依次点击左侧的tools和web browsers,进入到浏览器的设置项中我们可以看到浏览器默认采用的是default,系统默认的,我们点击下拉菜单,选择定制路径...
转载
17阅读
0评论
0点赞
发布博客于 2 年前

汉诺塔III HDU - 2064

汉诺塔IIIHDU - 2064约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

idea中隐藏.idea文件夹和.iml文件

idea中的.idea文件夹和.iml是平常几乎不使用的文件,在创建父子工程或者聚合工程时反而会对我们操作产生干扰,所以,一般情况下,我们都将其隐藏掉,步骤如下:操作前:具体操作:File——>settings——>Editor——>File Types——>Ignore files and foloders中输入*.iml和.idea,以 ; 结尾...
转载
67阅读
0评论
0点赞
发布博客于 2 年前

Tr A HDU 1575 (矩阵快速幂)

1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<algorithm> 6 #include<cstdio> 7 #include<cstr...
转载
47阅读
0评论
0点赞
发布博客于 2 年前

最大公约数和最小公倍数 模板

1 int gcd(int a, int b)2 {3 return b == 0 ? a : gcd(b, a%b); 4 }5 6 int lcm(int a, int b)7 {8 return a * (b/gcd(a, b)); // 建议先除再乘,避免乘法溢出 9 } 转载于:https://w...
转载
72阅读
0评论
0点赞
发布博客于 2 年前

矩阵快速幂 模板

1 #define maxn 15 2 3 int n, k; // n阶方阵的k次幂 4 5 struct matrix//定义一个结构体,方便传递值 6 { 7 int m[maxn][maxn]; 8 }; 9 10 /*11 mod由全局定义,mod根据需要可以省去12 */13 14 matri...
转载
46阅读
0评论
0点赞
发布博客于 2 年前

%运算符的性质

转载于:https://www.cnblogs.com/FengZeng666/p/11486429.html
转载
141阅读
0评论
0点赞
发布博客于 2 年前

碰撞的小球 ccf (模拟)

问题描述试题编号:201803-2试题名称:碰撞的小球时间限制:1.0s内存限制:256.0MB问题描述:问题描述  数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。...
转载
69阅读
0评论
0点赞
发布博客于 2 年前

二分求幂 模板

1 int quick_pow(int a, int b) // 二分求幂 2 { 3 int ans = 1; 4 while(b != 0) 5 { 6 if(b % 2 == 1) 7 ans *= a; 8 a *= a; ...
转载
49阅读
0评论
0点赞
发布博客于 2 年前

A Simple Problem with Integers POJ - 3468 (线段树)

思路:线段树,区间更新,区间查找 1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<set> 6 #include<algorithm>...
转载
50阅读
0评论
0点赞
发布博客于 2 年前

url映射 ccf (Java正则表达式80分解法)

问题描述试题编号:201803-3试题名称:URL映射时间限制:1.0s内存限制:256.0MB问题描述:问题描述  URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块...
转载
58阅读
0评论
0点赞
发布博客于 2 年前

Color the ball HDU - 1556 (线段树)

思路:线段树,区间更新 1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<set> 6 #include<algorithm> ...
转载
17阅读
0评论
0点赞
发布博客于 2 年前

scanf("%c", &ch)和scanf(" %c", &ch)和scanf("%s", str)的注意事项

scanf("%c", &ch)和scanf(" %c", &ch):%c会读取回车和空格,所以一定要使用后者,即在%c前面加一个空格。%s用于读取char[]时,会忽略空格和回车,所以不会有这些问题。转载于:https://www.cnblogs.com/FengZeng666/p/11448043.html...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

线段树 模板

1 #define MAXSIZE 50010 2 3 int tree[4*MAXSIZE];  // 此处要开4倍空间 4 int lz[4*MAXSIZE]; 5 6 void init() 7 { 8 memset(tree, 0, sizeof(tree)); 9 memset(lz, 0, sizeof(lz));...
转载
13阅读
0评论
0点赞
发布博客于 2 年前

I Hate It HDU - 1754 (线段树)

注意点:scanf中使用%c时,会读取空格和回车,所以在%c之前要有一个空格 ( 或者直接使用%s也行,%s会忽略空格和回车 )。具体见下面的代码: 1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath>...
转载
11阅读
0评论
0点赞
发布博客于 2 年前

线段树原理详解

本文部分转载自:https://blog.csdn.net/iwts_24/article/details/81484561区间求和问题-医院卖药 假设有一家医院,医院有卖药的地方,不同的药品有不同的数量。每次开药、进药都要在计算机里面记录数量变化,这样方便医院的管理。那么我们该如何实现这样的程序?当然,药品数量的储存用数组是比较合适的(真实的项目当然要用数据库)...
转载
12阅读
0评论
0点赞
发布博客于 2 年前

Pycharm如何在控制台输出窗口中使用Python解释器

打开菜单栏run->edit configurations,把下图中的复选框选中就可以了。转载于:https://www.cnblogs.com/FengZeng666/p/11437846.html
转载
147阅读
0评论
0点赞
发布博客于 2 年前

Constructing Roads POJ - 2421 (最小生成树)

思路:首先使用二维数组dis[][]处理输入, 对于已经修好的路,将其对应的dis[i][j]置为零即可。最后再将   所有的dis[][]保存到边结构体中,使用Kruskal算法求得最小生成树。 1 #include<iostream> 2 #include<vector> 3 #include<string>...
转载
25阅读
0评论
0点赞
发布博客于 2 年前

Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)

思路:有向图。假设在X牧场参加party,从X回家的时候,以X为起点,使用一次Dijkstra算法即可。难点在于去X参加party的最短路如何求解。   这时候我们可以反向建图,即把原来有向图的方向全部反向,形成一幅新的有向图G',此时再对G'使用一次以X为起点的Dijkstra算法即   可求得原图G中其他各点以X为终点的最短路径。 1 #incl...
转载
35阅读
0评论
0点赞
发布博客于 2 年前

小希的迷宫 HDU - 1272 (并查集)

思路: 当图中的集合(连通子图)个数为1并且边数等于顶点数-1(即改图恰好为一棵生成树)时,输出Yes.此题的坑:(1) 如果只输入0 0算作一组数据的话答案应该输出Yes     (2) 输入数据可能并不是连通图,有可能一开始不连通,所以最后一定要判断其连通子图个数是不是1 1 #include<iostream> 2 #include<...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

Scanner读取记事本文件内容为空的解决办法

原因:记事本txt文件中含有中文,windows记事本编码方式为gbk,但是eclipse中为utf-8,所以需要在Scanner中指定编码方式。转载于:https://www.cnblogs.com/FengZeng666/p/11392824.html...
转载
98阅读
0评论
0点赞
发布博客于 2 年前

Wireless Network POJ - 2236 (并查集)

1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<algorithm> 6 #include<cstdio> 7 #include<cstring...
转载
14阅读
0评论
0点赞
发布博客于 2 年前

mysql limit的使用方法

mysql的分页limit的使用方法大全1.取表中的n行之后的m条元组(limit n,m)select * from student limit 4,8; //取出student表中第4行后的8条元组(这里的区间是左开右闭)2.取出表中前m行元素(limit m)select * from student limit 3; //取出student表中的前3行元组...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

线段树为什么要开4倍空间

问题1: 线段树空间只需要2*n即可???对于这种建图方式,建出来的并不是完全二叉树,而是具有完全二叉树性质(父节点为x,则左儿子为2x,右儿子为2x+1),好处:可以省掉许多并不需要的节点。由于具有完全二叉树这种性质,2*n空间一定不够用!!见下图:问题2: 线段树空间只需要3*n即可???证明: 设长度为N的数组在线段树中,编号最靠右的节点为F(N)。(上...
转载
43阅读
0评论
0点赞
发布博客于 2 年前

敌兵布阵 HDU - 1166 (线段树)

线段树模板题: 1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<set> 6 #include<algorithm> 7 ...
转载
16阅读
0评论
0点赞
发布博客于 2 年前

Oil Deposits HDU - 1241 (dfs)

Oil DepositsHDU - 1241The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, a...
转载
60阅读
0评论
0点赞
发布博客于 2 年前

go struct{} 空结构体的特点和作用

空结构体的特点和作用参考代码package mainimport ( "fmt" "unsafe")func main() { empStruct()} //空结构体的实例和作用func empStruct(){ //空结构体的特点:1、不占用内存;2、地址不变 var s struct{} var s1 str...
转载
385阅读
0评论
0点赞
发布博客于 2 年前

go context学习

context学习context的struct设计type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{}}struc...
转载
61阅读
0评论
0点赞
发布博客于 2 年前

无缓冲区的注意事项

参考代码func main(){ // 错误写法 // ch1 := make(chan string) // ch1 <- "test" // // 没有缓冲区,就会一直阻塞,写不进去,生产者和消费者要其中一个一定要放在协程中 // data,ok = <- ch1 // // 不行 // if ok{ //...
转载
87阅读
0评论
0点赞
发布博客于 2 年前

time包中Parse和Format的区别

time包中Parse和Format的区别参考代码package mainimport( "fmt" "time")// 规定parse和Format的参考时间,这个是官方规定的const longForm = "Jan 2, 2006 at 3:04pm (MST)"const shortForm = "2006-Jan-02" const ti...
转载
250阅读
0评论
0点赞
发布博客于 2 年前

for range 经典问题

for range 经典问题问题package mainimport( "fmt")type Student struct{ Age int Name string}func main(){ data := make(map[string]*Student) students:=[]Student{ {Age...
转载
63阅读
0评论
0点赞
发布博客于 2 年前

defer func(参数){}

defer func(参数){}参考代码func main(){ fmt.Println("================打印顺序===============") a:=1 b:=2 defer calc("1",a,calc("10",a,b)) a=0 defer calc("2",a,calc("20",a,b)) ...
转载
336阅读
0评论
0点赞
发布博客于 2 年前

docker中使用golang:alpine镜像制作开启goweb的dockerfile

docker中使用golang:alpine镜像制作开启goweb的dockerfilego的web代码package mainimport( "net/http" "fmt")func main(){ fmt.Println("开启后端") http.HandleFunc("/Hello",PrintHello) err:=ht...
转载
213阅读
0评论
0点赞
发布博客于 2 年前

golang panic的错误回收和简单的使用场景

golang panic的错误回收和简单的使用场景代码示例package mainimport( "fmt")func main(){ _,err:=deferPanic(8,0) if err!=nil{ fmt.Println(err) } fmt.Println("这里还是会执行的")}//panic ...
转载
98阅读
0评论
0点赞
发布博客于 2 年前

循环开协程情况分析

循环开协程情况分析代码package mainimport( "fmt" "runtime" "sync")//for循环只是用来创建协程而已,当协程创建完成之后,就不再受for控制func main(){ runtime.GOMAXPROCS(1) wg := sync.WaitGroup{} wg.Add(60)...
转载
77阅读
0评论
0点赞
发布博客于 2 年前

defer 被调用时机

defer 被调用时机代码测试package mainimport( "fmt")func main(){ deferOpp() deferOppP(8) a:=deferOppP1() fmt.Prinltn(a)}//1、没有参数,没有看到明显效果func deferOpp(){ defer fm...
转载
60阅读
0评论
0点赞
发布博客于 2 年前

数据库中case when condition then else end的理解

数据库中case when condition then else end的理解数据库中根据不同的条件求数量或者是总数select count(case when status=0 then 'done' end)as done,count(case when status=-1 then 'doing' end)as doing from t_func;when 表示条件,t...
转载
117阅读
0评论
0点赞
发布博客于 2 年前

Visual Studio Code Go插件配置选项

Visual Studio Code Go插件配置选项go get命令和go install命令的区别go get 命令的作用从远程下载需要用到的包下载完之后,执行go installgo install 命令的作用生成可执行文件后,放在%GOPATH%/bin目录下需要下载的插件dlvgocodegodefgolintgo-find-re...
转载
164阅读
0评论
0点赞
发布博客于 2 年前

Ubuntu下载gitea

Ubuntu下载gitea运行下面的命令,下载可执行文件wget -O gitea https://dl.gitea.io/gitea/1.9.2/gitea-1.9.2-linux-amd64赋予gitea文件,可执行的权限chmod +x gitea在gitea文件路径下执行,查看是否已经下载成功./gitea转载于:https://www.cnblog...
转载
131阅读
0评论
0点赞
发布博客于 2 年前

golang 根据基础的url下载静态服务器上所有的文件

功能根据静态服务器上基础的url,获取所有的文件运用到的知识点日志处理能在控制台打印,又能写入文件向服务端发送get请求http.Get(url)递归获取文件夹和创建文件夹package mainimport (​ "fmt"​ "io"​ "io/ioutil"​ "log"​ "net/http...
转载
369阅读
0评论
0点赞
发布博客于 2 年前

使用docker中的apline部署自己的golang的后端代码(添加制作静态服务器的注意点)...

1、在window上写golang后端代码2、打开终端设置临时的Linux的环境变量:SET CGO_ENABLED=0SET GOOS=linuxSET GOARCH=amd64如下图所示:3、不要关闭终端,在这个终端中运行go build 命令,生成可执行文件4、使用xftp,将可执行文件放在Linux服务器上,(保证自己的服务器上要有d...
转载
58阅读
0评论
0点赞
发布博客于 2 年前

go+cookie+angular踩过的坑

出现问题go后端在设置路由的时候,响应头设置带有cookie。但是angular向该接口发起post请求的时候,返回的数据没有cookie原因和解决办法cookie在跨域请求的时候,会丢失。因此我们在angular项目中设置代理解决go后端代码后端功能:接收angular向SetCookie接口发起的post请求数据,将该数据转化为cookie值package...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

golang中创建logger时候踩过的坑

golang中创建logger时候踩过的坑错误的代码package mainimport ( "fmt" "io" "log" "os")var logger *log.Loggerfunc init(){ fmt.Println("创建日记录日志文件") f,err:=os.OpenFile("./Log.log",...
转载
273阅读
0评论
0点赞
发布博客于 2 年前

git 分支推送项目

1、切换分支到指定的分支git checkout -b 想要的分支名称2、然后将从master中clone下来的项目删除,放上自己想要的项目3、git add .4、git commit -m ‘描述'5、git branch --set-upstream-to=origin/分支 跟踪分支变化6、git pull7、git push转载于:h...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

利用docker中的nginx镜像部署angular项目

1、进入angular项目下的src文件加下:在命令行中执行:ng build --prod --aot2、将生成的dist文件,通过Xftp传到服务器中3、修改权限4、进入到dist文件夹下的t-app文件夹下,执行dockers run命令5、这样部署完之后,因为没有在angular项目中添加一些配置,导致刷新的时候出现404错误解决方法:...
转载
170阅读
0评论
0点赞
发布博客于 2 年前

使用go开启一个能够提供给html的a标签的下载的后端

package mainimport("encoding/json""fmt""io/ioutil""net/http")func main(){fmt.Println("将自己的电脑转化为服务端")// http.Handle("/",http.FileServer())ht...
转载
97阅读
0评论
0点赞
发布博客于 2 年前

go语言按行读取文件

1、打开文件2、实例阅读者3、以‘
'结束获取一行内容package mainimport ( "bufio" "fmt" "io" "os")func main(){ fmt.Println("go语言读取文件") file,err := os.Open(`文件地址`) if err!=nil{ panic(err...
转载
289阅读
0评论
0点赞
发布博客于 2 年前

angular中的e2e检测sendkeys将绑定值设置为空

<button id="publish" [disabled]="((!testContent)&&iValue)" >发表</button><textarea cols="40" rows="5" [(ngModel)]="testContent" name="content" id="chinese"></tex...
转载
30阅读
0评论
0点赞
发布博客于 2 年前

go语言中go+select的理解

// select在go语言协程里面是有阻塞select后面继续运行的代码作用,但是当select的case获取到数据之后,协程里面的代码是不会停止的,他还是会继续运行的package mainimport( "fmt" "time")func main(){ fmt.Println("超时设置") var ch chan string go ...
转载
25阅读
0评论
0点赞
发布博客于 2 年前

自定义镜像流程

1、创建一个Dockerfile文件夹:mkdir Dockerfile2、进入Dockerfile文件夹,编写dockerfile文件:vim dockerfile3、编写dockerfile文件:注意在在拷贝文件的时候,源文件要放在Dcokerfile文件夹下from node:lts-alpineworkdir /appcopy mocha .run npm i...
转载
79阅读
0评论
0点赞
发布博客于 2 年前

5 交换机-direct (路由)

目录 路由 1、绑定 2、direct 类型exchange 3、多重绑定 4、示例代码 4.1、生产者 4.2、消费者 路由上文中的exchange类型是fanout的,...
转载
110阅读
0评论
0点赞
发布博客于 2 年前

6 交换机-topic类型

目录 topic类型 1、topic类型的exchange topic类型在上文中,尽管使用了direct类型的exchange对日志系统有所提升,但还是有一些限制(消息不能够基于多重因素来路由)。在我们的日志系统中,希望不仅仅能够根据日志级别来订阅,还可以根据指定的...
转载
46阅读
0评论
0点赞
发布博客于 2 年前

maven

目录 1、maven介绍 2、maven环境的搭建 3、maven常用的命令 4、坐标依赖 1、依赖的配置 2、依赖范围 3、传递性依赖 4、依赖调解 5、可选依赖 6、排除依赖 ...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

4 交换机-fanout(订阅发布模式)

目录 订阅发布模式 1、交换器(Exchange) 1.1、创建交换器 1.2 、推送消息到交换器 2、临时队列 3、绑定(bingdings) 5、代码例子 5.1、生产者代码示例 5.2...
转载
52阅读
0评论
0点赞
发布博客于 2 年前

2 工作队列

目录 1、工作队列的概念 2、轮循分发(round-robin) 3、公平分发(fair dispatch) 4、消息应答机制 4.1 为什么需要消息应答机制 4.2 消息应答机制的作用 5、消息持久化 ...
转载
17阅读
0评论
0点赞
发布博客于 2 年前

1 简单队列

目录 1、获取MQ连接 2、发送消息 3、消费者旧API 4、消费者新API 采用老的API实现的,所谓的简单队列就是一个消费者一个生产者,是1:1的关系P :消息的生产者红色的:队列C:消费者1、获取MQ连接public class MqC...
转载
40阅读
0评论
0点赞
发布博客于 2 年前