自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 用python做作业笔记

库import numpy as npimport matplotlib.pyplot as pltimport numpy.linalg as la矩阵操作求逆A_inv = A.I求范数ans = la.norm(A)ans1 = la.norm(A, 1)ans2 = la.norm(A, 2)拟合拟合函数def f_1(x, A, B): return A*x + B ...

2018-06-18 15:33:42 413

原创 MastarCpler开发日志(五)——构建IR(without SSA)

        抱歉博客有一阵子没更了,因为生了四五天的病,又因为书上对这一段介绍的顺序奇奇怪怪的,it confuse me for a long time. 不过我现在可以把我前几天写的东西记录一下了。参考《编译器设计》(《Engineering a Compiler》)龙书大体思路AST    =>    线性IR(三地址代码)    =>    构建CFG    =>  ...

2018-05-23 20:25:17 507 1

原创 MastarCpler开发日志(四)——语义分析

        距离上一次更新抽象语法树的内容已经过去10天了,在写代码的过程中,总是有很多坑特别想记录,但到现在已经忘得差不多了,只能记录个大概,感觉有点遗憾。下次我应该换个更好的方式。参考主要是青木峰郎的《自制编译器》还有很多网上的资料。预备知识怎样用IntelliJ里的Git: https://my.oschina.net/u/2608182/blog/745178。Java异常处理。步骤建...

2018-04-22 12:59:38 509

原创 MastarCpler开发日志(三)——构建AST(抽象语法树)

        在正文之前,突然想发一点小感慨。因为懂得不多,又想自己探索,所以走了很多很多弯路。以前总听别人说,不要怕走弯路,全当鸡汤听了。现在发现,确实如此。参考:主要是青木峰郎的《自制编译器》还有很多网上的资料。预备知识        虽然不见得光知道这些就够了,而且虽然我也许了解的也不够准确,但我觉得起码要大概知道。1、AST和parse树的区别。        总的来说,AST树比par...

2018-04-12 22:17:00 1838

原创 MastarCpler开发日志(二)——用antlr4搞出parse树

参考:-官方文件:https://github.com/antlr/grammars-v4/blob/master/cpp/CPP14.g4-《C++ Primer》第五版-别人的总结https://abcdabcd987.com/notes-on-antlr4/过程:Mx*语言结构另外推荐一个挺好的在线画框图的网站:https://processon.com/我认为基本用到的antlr4格式大概...

2018-04-05 15:32:00 1555

原创 MastarCpler开发日志(一)——环境准备

1、前言        计算机系统大作业,让我们写一个编译器,将一种叫做Mx*的语言编译成可执行代码。我发现以前做个什么东西,不管是配环境得到的经验,还是在写的过程中有什么思考,都没有留下什么痕迹。尤其是配环境这种东西,每次都要新查资料,非常烦,于是打算花点时间写点东西,既是自己工作的记录,也是给别人的一个参考吧。哦,对了,MastarCpler是我随意起的名字。2、Mx*语言介绍        ...

2018-04-04 15:51:25 351

原创 Codeforces538F A Heap of Heaps【分块+差分求前缀和】

题意:给出一个长度为n的序列,构造k(1哎呀,这题很好做嘛。。你看数据是10W,然后看到(i-2)/k+1,因为整除嘛。。最多有sqrt(i-2)种取值(是吧我没说错吧?),连续一段答案会是相等的,也就是说,对于一段k在k·~(i-2)/((i-2)/k·)范围内,一个点的父亲都是同一个点QAQ。于是复杂度就是n*sqrt(n)啦。涉及到区间修改单点查询,就用差分求前缀和优化一下就好啦

2015-04-28 19:26:38 754

原创 BZOJ2434 [Noi2011]阿狸的打字机【AC自动机+dfs序+树状数组】

题意:给出阿狸的打字顺序(小写字母是写入,‘B'是删除,’P'是打印,此处产生新的字符串),给出多组询问,每次询问第x号字符串在第y号字符串中的出现次数。学过AC自动机的都知道,自动机上串A在串B中的出现次数,就是fail树上以串A结尾节点为根的子树中,串B的节点个数。这题我们用离线的方法,以y为关键字排序,在fail树的dfs序上用树状数组维护节点个数。为什么要按y为关键字排序呢?忽略‘P'

2015-04-24 09:56:12 409

原创 BZOJ1009 [HNOI2008]GT考试【kmp+矩阵加速DP】

题意:给定一个长度为n的由0~9组成的字符串,求构造长度为m且不包含该字符串的字符串的方案数。其实AC自动机+DP听显然的吧。但是kmp和AC自动机本质上是一样的嘛^^,所以就写了kmp,加深一下理解什么的。算法流程:1.构造kmp的next数组。(可以把它想象成建立AC自动机)2.DP:f[i][j]表示构造到第i位,在原串上跑到第j个的方案数。3.ans=∑f[0][i],

2015-04-24 09:29:13 476 1

原创 BZOJ1030 [JSOI2007]文本生成器【AC自动机+DP】

题意:给定n个字符串,要求构造长度为m的字符串使其包含至少一个给定字符串,求方案数。AC自动机+DP肯定是显然的啦。但是要求“至少一个”被包含肯定不好搞,所以我们反过来想,用总方案数-一个也不包含的方案数这样就好搞多了。具体算法流程如下:1.对n个字符串建立AC自动机;2.DP,f[i][j]表示字符串构造到第i位,在AC自动机上跑到j节点时的方案数。转移方程:(如果tr[j][k]不

2015-04-24 08:54:51 574

原创 欧拉函数的求法

欧拉函数我们都知道:在数论,对正n,欧拉函数是少于或等于n的数中与n互质的数的数目。

2014-10-29 18:21:43 515

原创 POJ3321 Apple Tree

话说第一眼见到以为hen'jian'dan'lei

2014-09-05 20:07:27 448

原创 Hoj 2275 Number Sequence

我发现传送门是个好东西:

2014-09-03 21:32:01 572

原创 BZOJ 1854 游戏

看了以后diyifanyi

2014-06-26 17:00:09 422

原创 BZOJ 1015 星球大战starwar

#include#include#include#include#define MAXN 200010usingnamespace std;structedge{    intto;    edge * p;} *ed[2*MAXN];intque[MAXN*2];

2014-06-26 16:28:41 380

原创 BZOJ 1237 配对

DP,多说没用,直接粘代码,简单明了,一看就懂。

2014-06-26 16:26:22 508

原创 BZOJ 1083 繁忙的都市

拿到这个题第一反应想到了wikioi里的“舒适的路线”,便想到了最最暴力的解法:枚举每个点,从此点开始每次都做一遍最小生成树,然后按以下程序判断    (1)是否连通 (2)边数是否小于当前记录的最小边数 (3)最大价值是否最小于是便得到了下面的代码

2014-06-26 14:06:37 560

原创 BZOJ 1293 生日礼物

我发现BZOJ的水题都比较高档昂。这道题的基本思想是,每次用优先队列把位置最靠前的颜色弹出来,并把与它颜色相同的下一个点的位置进队列,每次更新最优长度。    1.初始化:每个点的下一个相同颜色点的位置。    2.将每个颜色的第一个点入队列,算第一个状态。    3.每次将队列最前端的颜色弹出,将他的下一个点放入队列,更新最优长度。注:cmp函数、重载运算符有的时

2014-06-26 14:03:07 439

空空如也

空空如也

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

TA关注的人

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