面向过程编程
主要介绍面向过程编程中写代码时的一些注意点,以及一些知识点涉及数据结构中的图论 树论,其中也不乏作者早期在学校学习中的一些项目、大作业、还有ACM中的一些算法学习笔记etc
菱形继承
懒癌患者,IT民工,前进路上经常磕磕碰碰
展开
-
循环不变式:算法中基础概念的明晰
循环不变式循环不变式主要用来辅助我们理解算法的正确性,对于循环不变式,必须证明它的三个性质初始化:它在循环的第一轮迭代开始之前,应该是正确的。保持:如果在某一次循环迭代开始之前是正确的,那么在下一次迭代开始之前,它也应该保持正确(假设当循环变量等于k时符合,再看执行一遍循环体后是否还符合循环不变式)。结束:当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的(这一步是和数...原创 2020-02-20 19:42:46 · 1631 阅读 · 16 评论 -
数据结构题集(严书)图 常见习题代码
7.15//邻接矩阵实现图的增删点、边Status Insert_Vex(MGraph &G, char v){if(G.vexnum+1)>MAX_VERTEX_NUM return INFEASIBLE;G.vexs[++G.vexnum]=v;return OK;}//Insert_Vex Status Insert_Arc(MGraph &...原创 2019-11-21 19:45:02 · 1523 阅读 · 6 评论 -
MATLAB 与 C 语言的混合编程实战之辛普森积分法、自适应辛普森积分
题目要求题目大意是让你用c系语言实现辛普森积分法对定积分的粗略估计,所谓辛普森积分法即为:定义:辛普森法则(Simpson's rule)是一种数值积分方法,是牛顿-莱布尼茨公式的特殊形式,以二次曲线逼近的方式取代矩形或梯形积分公式,以求得定积分的数值近似解。其近似值如下: ...原创 2019-11-19 21:46:54 · 4850 阅读 · 0 评论 -
Difference in two ways of using lower_bound [C++]std::set::lower_bound与std::lower_bound
缘起:Codeforces Round #555 (Div. 3), problem: (E) Minimum Array 这道题目难度不大,大概在div2 C题左右但是有个关键点就是stl中lowerbound和set自带的lowerbound差别,很naive的我想着这两个都是o(logn)的,事实上,t了无数发后才发现标程是s.lower_bound(x)而我是(s.begi...原创 2019-08-02 11:53:53 · 1674 阅读 · 0 评论 -
xmuC语言程序实践week 3 大作业
本周作业较简单,单链表实现插入排序(一百来行)最终实现什么效果呢?1.在线插入,在线查询输出排列后有序链表,并且输出新加入元素的插入位置2.如输入负数,则删除其相反数,有多个的话删除编号最小的即可3.一些文字提示balabala的最后废话一点,删除元素思路:置pre now双指针,找到要删的元素pre指向now后一个链表元素地址,相当于直接将要删除元素架空插入排序思路:...原创 2019-07-05 21:25:38 · 281 阅读 · 0 评论 -
xmuC语言程序实践week 4 大作业
C语言程序实践第四次实验报告大意是写一个餐馆订餐系统,支持增删改查打印等基本功能,不过老师又提出了7点新需求1、应该中午、晚上分别记最多接受订桌数。2、应该按人名/手机号输入,不能按编号输入,编号不要人工输入,应该自动编号;应记录订桌时间。3、查询功能不要按编号查询,应该按人名、手机号码、时间等查询。4、修改与查询一样不要按编号,要先显示...原创 2019-07-16 09:46:00 · 3510 阅读 · 1 评论 -
xmuC语言程序实践week 2 大作业
算法训练 字串统计描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入输入描述: 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输入样例:输出输出描述: 一行,题目要求的字符串。 输入样例1:...原创 2019-06-29 21:24:59 · 262 阅读 · 0 评论 -
迷宫问题的简单栈实现
问题描述:以一个n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍,设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。对于本问题需用栈实现“穷举求解”算法,即:从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。加入所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。迷宫数...原创 2019-07-05 14:41:15 · 413 阅读 · 0 评论 -
C语言程序实践第一周报告(.doc版)
C语言程序实践第一周报告矩阵乘方一种朴素的思想对于普通类型的求a^n,我们的求法是a*a*a*a....,这样乘以n次,时间复杂度为O(n),对于普通n比较小的我们可以接受,然而当n比较大的时候,计算就慢了,所以我们就去寻找更快捷的计算方法,学过快速幂的同学应该不难想到矩阵的快速幂例如:我们要求2^8,我们通过当为偶数的时候,a^n=(a*a)^(n/2),当n为奇数时,a^n=a...原创 2019-06-29 11:10:38 · 269 阅读 · 0 评论 -
xmuC语言程序实践week 1 大作业
算法提高 矩阵乘方描述 给定一个矩阵A,一个非负整数b和一个正整数m,求A的b次方除m的余数。 其中一个nxn的矩阵除m的余数得到的仍是一个nxn的矩阵,这个矩阵的每一个元素是原矩阵对应位置上的数除m的余数。 要计算这个问题,可以将A连乘b次,每次都对m求余,但这种方法特别慢,当b较大时无法使用。下面给出一种较快的算法(用A^b表示A的b次方): 若b=0,则A^b%...原创 2019-06-21 21:19:45 · 529 阅读 · 0 评论 -
0x3f3f3f3f常量在编程中的妙用
今天做了一下一道多源最短路径的问题,用弗洛伊德算法的,五分钟敲完,交一下发现wa了,调了半天才发现初始化邻接矩阵的inf设置成2147483647(2^31-1)大数相加的时候会溢出,变成很小的负数为了解决这个问题,我们就在想,要找到这样一个大数,满足加上一个常数依然是无穷大之外,我们的常量还应该满足“无穷大加无穷大依然是无穷大”,至少两个无穷大相加不应该出现灾难性的错误,这一点上2147...原创 2019-06-26 11:33:45 · 264 阅读 · 0 评论 -
对顶堆求区间k小(大)数
P1801 黑匣子_NOI导刊2010提高(06)首先,这道题让我们求每次的第i大值,而i是会移动的——那我们就可以理解为,我们需要知道第i大值和第i+1大值(请撕烤)。那用什么数据结构呢? 首先,要确定第i大值,就可以知道i-1~1是从大到小的; 相似的,i+1~n的元素是从小到大的。 可以用堆来完成 我们用一个大根堆来保存前i-1大数,大根堆确定了其中的元素是...原创 2019-06-24 14:13:58 · 296 阅读 · 0 评论 -
模拟赛 2018 Benelux Algorithm Programming Contest (BAPC 18)(部分题)
A题After the festive opening of your new store, the Boutiquestore for Alternative Paramedicine and Cwakhsahlvereigh,to your disappointment you find out that you are not mak-ing as many sales...原创 2019-06-22 21:11:12 · 901 阅读 · 0 评论 -
XMU oj Problem List
1000请计算两个整数的和并输出结果。注意不要有不必要的输出,比如"请输入 a 和 b 的值: ",示例代码见隐藏部分。#include <stdio.h>int main(){ int a, b; scanf("%d%d", &a, &b); printf("%d\n", a+b); return 0;}1111...原创 2019-04-09 17:34:14 · 4179 阅读 · 0 评论 -
substr怎么用
头文件:#include<string>例:string a="l am so weak";第一种用法:string Son_a=a.substr(5);从下标5开始形成新的子字符串Son_a="so weak";第二种用法 string Son_a=a.substr(5,7);(从下标为5开始截取7个字符构成新字符串)Son_a="so weak";12=(...原创 2019-03-29 11:19:13 · 4686 阅读 · 1 评论 -
3.30团体天梯赛后个人感想
这是一篇很没有思路和头绪的杂记本来想写写比赛后一起玩的经历,但是还是要以大局为重,学习为主怎么说呢,打完比赛呢,有几点感想:虽然天梯赛含金量可能连省赛都比不上,可是在面对天梯赛中出现的失误是要引起重视的,例如,L1水题要保证在1h ak,L1最后一题当时的策略也是对的,果断放掉,因为收益不高嘛,码半小时可能还没a掉,其实和熟练度有关,码力不够 fd今年又虐了我校,身为xmu的每一个a...原创 2019-03-31 11:40:38 · 2450 阅读 · 0 评论 -
数据结构回顾及展望(二)(3.22更新)
事在人为,盛衰之理,虽曰天命,岂非人事哉!原庄宗之所以得天下,与其所以失之者,可以知之矣。------------《伶官传序》你选择的方向和你决定付出的努力决定你达到的高度和广度。----------引言 预备知识(默认已掌握)连通图:在无向图中,若任意两个顶点与都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点与都有路径相通,则称该有向图为强连通图...原创 2019-03-21 17:24:04 · 4110 阅读 · 0 评论