- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 我的软件工程课目标
在这个大三的下学期,我们开始了学习软件工程的课程。作为一名学习软件工程专业的学生,这门课是非常重要的。因此,我需要确定我在软件工程这门课上的目标。根据百度百科,软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需...
2018-03-25 21:34:05
469
1
原创 扩展欧几里得—POJ1061
题目就是说,给你两个起始的x和y,然后x每次增加m,y每次增加n,以及长度L,求出最小的变化次数T,有(x+m*T)-(y+n*T)==P*L. 我们先得出方程 (m-n)t+Lk=y-x, t为步数 k为圈数, 然后根据扩展欧几里得就能得出解。 要注意呀一点就是,对L取余要防止负数情况。 代码如下: #include #include using namespac
2016-11-20 15:32:58
373
原创 最短路—SPFA&dijkstra(51nod1459)
题目: 你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快离开迷宫的前提下
2016-11-20 13:01:31
429
原创 BFS—HDU1548
题目意思呢大致是: 电梯每层有一个不同的数字,例如第n层有个数字k,那么这一层只能上k层或下k层,但是不能低于一层或高于n层,给定起点与终点,要求出最少要按几次键。 最开始想的,诶这不就是一道深搜的题么,结果写好后发现炸掉了,想了想果断广搜: #include #include #include #include using namespace std; int n,s,e
2016-11-20 12:45:47
361
原创 快速幂取余—HDU1061
题目意思炒鸡简单:给你一个N,计算N^N个位上的数字是多少 做法也很简单,但是普通做法会超时,所以要用到快速幂取余。 啦啦啦,召唤代码~~:#include int FPT(int a,int n,int mod) { if(n==0) return 1; int ans=qpow(a,n/2,mod); ans=ans*ans%mod;
2016-11-20 12:33:55
627
原创 拓扑排序算法—HDU1285
运用拓扑排序的算法 这也是老师提供的模板 把每个关系构成图 离散没有学好... 但是有模板啊,不过数学真的要好好学,嗯! 代码: #include #include using namespace std; #define MAXN 520 int toposort(int n,int mat[][MAXN],int* ret) { int d[MAXN],i,j,k;
2016-11-20 12:22:11
352
原创 并查集—HDU1232
一看到题目,很明显的并查集嘛,走起走起。 #include int bin[1002]; int findx(int x)//用来找每个节点的根节点 { int r=x; while(bin[r] !=r) r=bin[r]; return r; } void merge(int x,int y) { int fx,fy; fx = fi
2016-11-20 12:17:27
419
原创 KMP—HDU2203
这道题吧,刚开始觉得不知道从哪里下手,后来上了个厕所,突然想到,其实把匹配串复制一遍,然后用KMP搜一遍就行了: #include #include #include #define val 100005 int lens,lenp,next[val]; char s[val*2],p[val]; bool kmp(); int main() { wh
2016-11-20 12:14:27
354
原创 KMP—HDU2594
比较基础的kmp算法题目 代码如下: #include #include #include using namespace std; const int maxn = 50010; char a[maxn+5]; char b[maxn+5]; char t[maxn+5]; char p[maxn+5]; int f[maxn+5]; char res[maxn+5]; void g
2016-11-20 12:10:13
388
原创 DFS—HDU1010
大意为给定一个N*M的迷宫以及起点和终点,迷宫中有一些障碍无法穿过,问能否不重复也不停留地在刚好一共走T步出迷宫。 这道题呢DFS也是能过的,但是如果用上奇偶剪枝的技巧速度会快很多: #include #include using namespace std; char map[10][10]; int flag, Xnum, Sx, Sy, Dx, Dy; int n, m, t; in
2016-11-20 11:27:50
428
原创 简单DFS — POJ1979
题意很简单 :给你一个row*col的矩阵,上面的'#'代表你不能走的地方,'.'表示你能走的地方,'@'表示你的起点,问你最多能走多少格。 这也是一道非常基础的DFS题,我们来看一下代码实现: #include #include #define MAXN 20 + 10 char graph[MAXN][MAXN]; int m, n; int result; void DFS(in
2016-11-20 11:17:34
511
原创 二分图的最大匹配--匈牙利匹配算法
例子就以sicnuoj的题,http://acm-sicnu.com/problem/32/ #include #include #include using namespace std; int match[200][400] = {0}; int lib[400] = {0}, used[400] = {0}; int n, m, no, sum = 0; int find(in
2016-11-04 17:58:04
396
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人