- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 我的软件工程课目标
在这个大三的下学期,我们开始了学习软件工程的课程。作为一名学习软件工程专业的学生,这门课是非常重要的。因此,我需要确定我在软件工程这门课上的目标。根据百度百科,软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需...
2018-03-25 21:34:05 398 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 #includeusing namespac
2016-11-20 15:32:58 343
原创 最短路—SPFA&dijkstra(51nod1459)
题目:你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快离开迷宫的前提下
2016-11-20 13:01:31 402
原创 BFS—HDU1548
题目意思呢大致是:电梯每层有一个不同的数字,例如第n层有个数字k,那么这一层只能上k层或下k层,但是不能低于一层或高于n层,给定起点与终点,要求出最少要按几次键。最开始想的,诶这不就是一道深搜的题么,结果写好后发现炸掉了,想了想果断广搜:#include #include #include #include using namespace std;int n,s,e
2016-11-20 12:45:47 340
原创 快速幂取余—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 600
原创 拓扑排序算法—HDU1285
运用拓扑排序的算法 这也是老师提供的模板 把每个关系构成图 离散没有学好...但是有模板啊,不过数学真的要好好学,嗯!代码:#include #includeusing namespace std;#define MAXN 520int toposort(int n,int mat[][MAXN],int* ret){ int d[MAXN],i,j,k;
2016-11-20 12:22:11 329
原创 并查集—HDU1232
一看到题目,很明显的并查集嘛,走起走起。#includeint 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 391
原创 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 336
原创 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 346
原创 DFS—HDU1010
大意为给定一个N*M的迷宫以及起点和终点,迷宫中有一些障碍无法穿过,问能否不重复也不停留地在刚好一共走T步出迷宫。这道题呢DFS也是能过的,但是如果用上奇偶剪枝的技巧速度会快很多:#include#includeusing namespace std;char map[10][10];int flag, Xnum, Sx, Sy, Dx, Dy;int n, m, t;in
2016-11-20 11:27:50 403
原创 简单DFS — POJ1979
题意很简单 :给你一个row*col的矩阵,上面的'#'代表你不能走的地方,'.'表示你能走的地方,'@'表示你的起点,问你最多能走多少格。这也是一道非常基础的DFS题,我们来看一下代码实现:#include #include #define MAXN 20 + 10char graph[MAXN][MAXN];int m, n;int result;void DFS(in
2016-11-20 11:17:34 469
原创 二分图的最大匹配--匈牙利匹配算法
例子就以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 372
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人