自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 字典树模板

字典树

2024-03-24 11:46:37 82

原创 Z algorithm(Z算法,扩展kmp)

Z数组的元素Z[i]存储从str[i]开始的最长子串的长度,也是str[0..n-1]的前缀。用于处理字符串匹配问题,记个模板代码。时间复杂度O(n)。

2024-02-04 22:35:18 361

原创 start至finish,每个数位不超过limit,数的后缀为s

从start至finish,每个数位都不能超过limit,且数的后缀为s(保证s的每个数位都不超过limit),求一共有多少个这样的数。只要求出0~finish 有符合要求的数以及0~start-1有多少这样的数,然后减一减就行了,具体怎么算,详情看代码。leetcode双周赛121最后一题,错了好多次,有点扣脚,记个自己的模板。

2024-01-07 00:00:06 340

原创 pip 安装包时 报错——gcc编译失败

可能原因gcc版本不够高,默认使用的是c98,而要编译代码中有c11的东西解决方案(ubuntu下)sudo apt-get install gcc-8sudo apt-get install g++-8sudo rm /usr/bin/gccsudo ln -s /usr/bin/gcc-8 /usr/bin/gccsudo rm /usr/bin/g++sudo ln -s /usr/bin/g++-8 /usr/bin/g++...

2021-08-03 10:50:34 1102

原创 C++ Primer 第15章 面向对象程序设计 重要知识点

重要知识点面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。任何构造函数之外的非静态函数都可以是虚函数。关键字virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义。派生类能访问公有成员,而不能访问私有成员,也可以访问受保护的(protected)成员。从派生类向基类的类型转换只对指针或引用类型有效。如果我们通过基类的引用或指针调用函数,则使用基类中定义的默认实参,即使实际运行的是派生类中的函数...

2021-01-04 16:21:49 156

原创 Python——装饰器@wraps

Python——装饰器@wraps闭包闭包的解释闭包的使用方式装饰器@wraps闭包在了解装饰器@wraps之前,先需要理解一下闭包相关资料:链接闭包的解释引用链接中的一段代码(为了方便解释我把源代码中的printer改成了printer1)def make_printer(msg): def printer(): print(msg) # 夹带私货(外部变量...

2019-09-13 21:48:18 270

原创 leetcode第149场周赛

leetcode第149场周赛比赛感想1154. 一年中的第几天题目大意解题思路相关代码1155. 掷骰子的N种方法题目大意解题思路相关代码1156. 单字符重复子串的最大长度题目大意解题思路相关代码1157. 子数组中占绝大多数的元素题目大意解题思路相关代码比赛感想做出来了三题,最后一题python查询用O(n)的方法超时了,一直在想小于O(n)的方法,然后gg,不过别人用c++写的O(n)...

2019-08-11 16:32:55 430 2

原创 leetcode第148场周赛

周赛感想 终于都做出来了,继续努力=,=第一题递减元素使数组呈锯齿状题目大意给你一个整数数组nums,每次操作会从中选择一个元素并将该元素的值减少1。 如果符合下列情况之一,则数组A就是锯齿数组: 每个偶数索引对应的元素都大于相邻的元素,即A[0] > A[1] &lt...

2019-08-04 19:05:57 181

原创 leetcode第147场周赛

有点忧伤,博弈题没做出来,前面还wa了好几次。第一题第 N 个泰波那契数题目大意 泰波那契序列Tn定义如下: T0= 0, T1= 1, T2= 1, 且在 n >= 0的条件下 Tn+3= Tn+ Tn+1+ Tn+2 给你整数n,请返回第 n 个泰波那契数Tn的值。解题思路 类...

2019-07-28 14:10:50 194

原创 leetcode第146场周赛

比赛感想做出了三题,掉分应该不会掉,最后一题没做出来,这次难度还行。第一题又把题目理解错了,挂了一次。。还得加油呀=,=第一题等价多米诺骨牌对的数量题目大意 给你一个由一些多米诺骨牌组成的列表dominoes,dominoes[i] = [a, b]和dominoes[j] = [c, d]等价的前提是a==c且b==d,或是a=...

2019-07-21 16:34:46 254

原创 leetcode第145场周赛

比赛感想 这次比赛血崩。。。第一题一直没通过心态爆炸,然后到最后就通过第四题,分数又降了不少。。赛后回顾了一下,第一题是因为没有初始化,提交解答后的测试应该是创建了一个实例,然后测试多个样例。第二题是个树的题目,不是很难,刚开始时没看懂题目,看了函数的返回值才知道要做什么,第三题想了很久都没想出来,看了别人的代码,别人是真的厉害,写的代码真的很巧妙,第四题是比较基础的状压dp。...

2019-07-17 00:00:43 196

原创 leetcode第144场周赛

这次比赛也比较简单,自己的脑子还是不够快啊=,=第一题IP 地址无效化题目大意: 用"[.]"代替了每个"."。解题思路: 比较简单的方法是直接replace替换,如果要求在原字符串上更改,则可以先统计.的个数,最终的字符串长度+2*点的个数,从字符串的最后面开始放置字符即可。(比赛时间有限,直接用了replace)代码如下:class...

2019-07-07 20:46:07 378

原创 leetcode143周赛

这次的题目相对来说比较简单,终于在一个半小时内做完了。。。。比赛地址链接:https://leetcode-cn.com/contest/weekly-contest-143/第一题 分糖果Ⅱ题目大意: 一共num_people个小朋友,给小朋友们分糖果,从第一个小朋友开始分1,2,...,num_people,分到最后一个小朋友时,糖果还没分完,再从第一个小朋友开始...

2019-07-06 11:22:36 270

原创 udp组播测试

这周主要做了udp组播的测试服务器端代码://服务器发送端#include <cstdio>#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>#include <net...

2019-03-23 11:35:17 1774

转载 查内存泄漏

内存泄漏的问题查得有点头疼,不过好在还是解决了最好的方法还是打日志或者gdb看看到底内存哪里增大了。很好用c++看linux内存的函数,原文地址:https://blog.csdn.net/thedarkfairytale/article/details/71079218#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#inclu...

2019-01-16 11:26:46 404

原创 笔试小知识点(随手备忘录)

所谓大端和小端,也就是big-endian和little-endian。大端——高尾端,小端——低尾端。

2018-11-13 19:25:15 127

原创 Linux下python3的安装

这篇文章主要讲在一台基本上算是只装了CentOS的服务器上安装python3yum install opensslyum install openssl-devel -yyum install sqlite-devel wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgztar -xvf Python-3.6.0...

2018-11-07 19:55:12 102

原创 Linux小知识点

刚开始接触Linux,把近几周的Linux小知识要点记录一下基础命令查看进程 —— ps -ef | grep XXX修改可执行文件的执行权限 —— chmod +x *.exe查看该目录下所有文件 —— ll查看当前目录的绝对路径 —— pwd查看某个可执行文件缺少的lib —— ldd *.exe登陆其他linux用户 —— ssh 用户名@IP地址远程传输文件...

2018-08-24 17:38:03 151

原创 hdu 3449 Consumer

题目大意:    FJ要去购物,他要用一些盒子去装要买的材料,每个盒子都有自己可以装的材料类型,价格pi元,可放物品有mi种,物品价格和价值分别为cj和vj,现在他有W元,要使得购买的材料价值最大。解决方案:    这题可以用有依赖的背包问题去解决。对于每一个盒子,判断在购买了这个盒子情况下,相同的金钱获得的最大价值;再计算在相同的金钱下,是买了当前盒子及物品赚还是不买赚。用f[i]来

2016-12-24 20:34:10 328

原创 求最长回文串(Manacher算法)

O(n)效率的字符串求最长回文串,感觉这个blog上写的很详细:http://www.open-open.com/lib/view/open1419150233417.html有几个要点:1、先要将字符串扩展成2*l+1长度的,在每两个字符之间要加上一个用不到的字符,比如‘#’,方便处理偶数回文串。2、在扩展后的字符串两端要加一些特殊字符,防越界。3、ra[i]数组表示以i为中点的

2016-10-27 20:44:42 355

原创 UVA 10054 The Necklace (欧拉回路)

题目大意:有一堆珠子,每颗珠子的两端分别有两种颜色,现在要将这些珠子串成一串,要求相邻的两颗珠子接触的一端颜色需要相同,问是否能串成一串,若能串成一串,给出这些的珠子连接顺序。想法:这是一题图论中欧拉回路的题。将每一个珠子视作一条边,每种颜色作为点,判断这图是否构成欧拉回路。先判断该图是否连通,可以用并查集做;然后判断每个点的度,若每个点的度都是偶数,可以构成欧拉回路,若只有两个奇数度的点,可

2016-08-14 21:24:42 481

原创 poj2418 Hardwood Species

题目意思:美国有很多种类的树,有硬木的,有软木的,现在输入一堆树,根据树名的字典序,从小到大输出树名及它占所有树种的比例这题可以用很多方法解,目前只用了AVL搜索树这种方法,就是AVL搜索树的一个套用提醒一句,貌似好多人用g++交就是错的,c++交就是对的代码如下:#include#include#include#include#include#includeusing

2016-07-12 21:00:56 328

原创 AVL搜索树

AVL搜索树是二叉排序数的一个改进,在AVL中任何两个儿子子树的高度差不超过1,故查找、删除、插入在平均和最坏情况下都是O(logn)。代码如下:#include#include#include#include#includeusing namespace std;typedef struct AVLTree{ int nData,nHeight; struct AVL

2016-07-12 20:53:50 456

原创 初步了解c++的文件输入输出

首先,c++的文件输入输出的头文件是#include 第一次看到别人代码的时候是这样的:freopen("4.in.txt","r",stdin);freopen("4.out.txt","w",stdout);fclose(stdin);fclose(stdout);试过,这样是可行的不过网上的貌似更具体一些ofstream outfile("f:/f1.

2016-07-11 22:04:25 418

原创 CODE[VS] 1404 字符串匹配

题目地址:http://codevs.cn/problem/1404/毕竟是中文题目,题目意思在上面很明显了,就是计算从A的任意位开始的子串和B匹配的长度,求出匹配长度恰为x的位置有多少个?这题是一题裸的kmp,不过稍微需要思考下代码附上:#include#include#includeusing namespace std;const int MAXN=200012;i

2015-11-08 21:12:51 759

原创 kmp模板

#include#include#includeusing namespace std;const int MAXN=100000;char a[MAXN],b[MAXN];int i,j,n,m,next[MAXN],p;int main(){ scanf("%s",&a[1]); scanf("%s",&b[1]); m=strlen(&b[1]); n

2015-11-08 19:41:43 264

原创 poj 2752 Seek the Name, Seek the Fame

题目地址:http://poj.org/problem?id=2752题目大意是求一个串中所有的满足前缀等于后缀的子串的长度(前面一部分与后面一部分完全匹配),这题是字符串的处理,可以利用kmp的next数组来做,next数组是当前最大的前缀等于后缀的前缀子串的位置。这题字符串自己本身显然是可行的,之后找本身的最大前缀后缀匹配子串,依次递归下去就可以了。代码附上:#include#i

2015-11-08 19:24:40 283

原创 对于2015长春赛的感想

这是我第一次坐飞机,其实飞机也就那样,坐着也不舒服,不过在天上看看地上的建筑,看看棉花糖般的云还是很不错的。      到了长春,前几天还是没有想象中的冷,白天还好,不过晚上略冷。到了宾馆,本以为还不错,结果我们那间房全是瓢虫,当地人把那虫叫做花大姐,我和一队友开始抓虫,大概抓死了10来个,别的房间也没了,只能住在这一间,只能让放杀虫剂,不过晚上吃完夜宵回来,觉得房间里毫无气味,目测没放杀虫剂

2015-11-05 22:19:49 414 1

原创 hdu5527 Too Rich

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5527题目大致意思是你现在有一堆硬币,有10种不同币值的钱a[i]个,先要凑出p元,要使得使用的钱币最多。这是一题贪心题,要使得所用钱币最少更容易进行处理,所以先算出总钱数sum,将问题转化成要得到sum-p元所需的最少钱币。如果题目中没有50和500元硬币就直接从大到小贪心一遍就行了,现在有了

2015-11-05 22:05:17 697

原创 hdu5534 Partial Tree

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5534题目大致意思是有一棵树,n个点,n-1条边,对于树中的一个点有x条边连着,度数为x。对于度数为x的点的coolness为f(x),输入给出,现要求构造一棵树,使得一棵树的coolness之和最大。这题是一题动态规划题,是一个背包问题。稍微分析一下,n-1条边必然有2*(n-1)个度,现就需

2015-11-05 21:07:43 478

原创 5475 An easy problem

据说方法有很多,我想到的是线段树,处理点的线段树,在处理过程中可能超过int,要用long long。附上代码:#include#includeusing namespace std;struct list1{ int l,r; long long value;} tree[400000];long long m;int T,i,q,x,a[120000];v

2015-10-10 20:05:18 209

原创 hdu 5312 Sequence

题意是给你一个数m,可以由多少个3*n*(n-1)+1组成(可重复)题解详见:http://blog.csdn.net/u013486414/article/details/47086067效率是O(T*sqrt(m))贴上代码#includeusing namespace std;const int maxn=1e9;int a[100012],T,i,n,m;int s

2015-08-03 17:00:04 260

原创 hdu 1698 Just A Hook 线段树的一道题

关于线段树以前也有过接触,不过忘了,重新回顾一下,线段树是用二叉树来实现的。关于线段树的概念,这个blog写的很详细,大家可以看一下http://www.cnblogs.com/shuaiwhu/archive/2012/04/22/2464583.htmlhdu 1698 Just A Hook这题题意是屠夫的钩子为n的长度,每段的材质都可以改变,一开始都是铜材质的,经过q次变化后求

2015-08-02 17:00:58 341

原创 hdu 5335 Walk Out

Work Out这题目的大致意思是一个人在n*m的迷宫里,一开始在(1,1)处,要走到(n,m)处,他每走一格都会记录下这格格子上的数,格子上不是1就是0,现在要使他记下来的这串二进制数最小。考试的时候一直想着用dfs,然后一直爆内存,然后一直钻牛角尖,想着把数组开小点,因为就超了没多少内存,结果浪费了好长时间0.0现在想想当时也是蠢,用bfs不就行了0.0我的想法是有这样一个

2015-07-31 15:46:12 347

原创 hdu5326 Work

Work大致题意:给你一些关系,告诉你某某人直接领导某某人,现在要求有n个部下的人有多少;用dfs做,并用p数组进行记录,以免重复运算代码附上#include#includeusing namespace std;const int MAXN=120;int n;int lead[MAXN][MAXN],p[MAXN];int doit(int x){ int

2015-07-30 20:35:46 277

原创 hdu5328 Problem Killer

这一题简单的模拟题,大致题意:有一串数,取其中连续的一串数,使其为等比或等差数列,求最长的长度。因为必须是连着的,所以从头扫到尾,如果断了,从断点处重新开始,O(n)的时间复杂度代码附上#include#includeusing namespace std;int T,i,n,dc,dbmax,dcmax,dbm,dcm,a[1000012];double db;int ma

2015-07-30 20:28:23 290

原创 暑假的第一次测试(三)

E题 Arthur and Table(原题codeforces 557 C)大致题意:有一张桌子,有n个桌脚,有长有短,现在要砍掉部分桌脚,使桌子保持平衡。砍桌脚需要花费一定的精力,最后留下的桌脚要有一半以上相同且是最大长度的,求最小要花费的精力。注:只剩一个桌脚算平衡,只剩两个桌脚必须一样长。我的想法是先求砍掉所有桌脚所需的精力s,然后将桌子的桌脚按长度进行排序,小的在前面。然后依

2015-07-28 20:19:15 311

原创 暑假的第一次测试(二)

C题 Vanya and Scales(原题codeforces #308 C)大致题意:用w^0、w^1、w^2、...、w^100的秤砣秤出质量为m的物体,秤砣可以放在两边,每个秤砣只有一个。就把m分解成w进制的数。0010w-1可以在物体处放w^0的秤砣变成00110在秤盘处放

2015-07-28 16:55:40 418

原创 暑假的第一次测试(一)

A题 ZgukistringZ( 原题 codeforces Round # 307 Div.2 B)一般的字符串模拟题。题目的大致意思是有字符串a、b、c。将a的某些字母进行交换,问a的不重叠子串和b、c相同的最多次数。比如样例三:a串:abbbaacccab串:abc串:aca将a变成ababacabcc,相同的有ab、ab、aca三个不重叠子串,注意题目说明是不重叠。

2015-07-28 15:23:03 337

原创 最短路之dijkstra

dijkstra是处理最短路的最基础的一个方法,只能做无负值边并且是单源最短路。大致是每次找到未进入集合的最短路点,然后用这个点更新路径,并将此点加入集合。hdu2544#include#includeusing namespace std;const int MAXN=120;const int MAX_INT=0x3fffffff;int n,m,i,j,u,v,l,h;i

2015-07-26 10:41:28 281

采用8255A、8253、8259芯片实现交通灯管理

采用8255A、8253、8259芯片实现交通灯管理,包含硬件线路连接图以及汇编代码

2017-12-11

交通灯(十字路口红绿灯)管理实验

采用8255A、8253、8259芯片实现,通过8255A控制发光二极管,8253作为可编程定时/计数器, 中断控制器8259A用来控制优先级中断,以模拟交通路灯的管理。

2017-12-11

空空如也

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

TA关注的人

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