- 博客(69)
- 收藏
- 关注
原创 ACM课程总结
ACM课程学习总结时间过得真快,转眼间一个学期又过去了,大二生活临近尾声,ACM课也要结束了。现总结如下:一、知识点整理(一)STL简单应用1、栈 (Stack)stack是一种先进后出(First In LastOut, FILO)的数据结构,它只有一个出口,只能操作最顶端元素。2、队列(queue)queue是一种先进先出(First In FirstOut,
2016-07-08 21:19:53
1285
原创 图论总结
一、知识点整理(一)图论的相关算法:1.广度优先搜索:用队列实现(广度优先搜索树不唯一)从起点开始,标记已经访问过了;当队列非空的时候,就取首元素,然后元素出队,所有与该元素相邻且未被访问过的点入队列;标记入队的元素已经被访问过了。2.深度优先搜索:用栈实现,(递归实现)将顶点入栈,如果有相邻的点,就将其入栈,直到没有相邻点就将其出栈,然后找在栈顶的元素其他的相邻点,如
2016-07-08 21:18:24
604
原创 专题四 Problrm P
一、题目编号: 1016二、简单题意:Problem DescriptionXX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边
2016-07-02 23:53:20
489
原创 专题四 Problem M
一、题目编号: 1013二、简单题意: 由于中国巨大的人口数量,公共交通非常重要。公交车在传统交通体系中是非常重要的,即使在现代也扮演着重要的角色。城市X的公交车系统非常奇怪,车票的价格决定于两个站点之间的距离。给出了描述距离和价钱之间关系的表格。你的邻居是一个路痴,他给出两个站点,要求帮他算出最少的花费。三、解题思路形成过程 Flo
2016-06-29 18:03:43
381
原创 专题四 Problem L
一、题目编号: 1012二、简单题意: 给出一个n*m的矩阵,起点在矩形的左上角, 终点在右下角,里面一个小矩形代表一个街区(block)。每个小矩形的边长都是2520, 小矩形的边有一个速度限制,范围是0~9, 如果是0表示这条边不能行驶。关于输入方面(此题最恶心的地方),由上到下,从左到右,按照上图的对应的位置方式给出数据, 每一条边是 "数字"+“空
2016-06-28 13:17:10
330
原创 专题四 Problem J
一、题目编号: 1010二、简单题意: Jimmy一最近在工作上感觉很大的压力,为了放松,他决定要从树林一端穿到另一端回家,因为树林中的环境非常漂亮。办公室是起点,为1,终点是家为2,要求: 每次到达新点一定是更加接近终点,问有多少种路径三、解题思路形成过程 开始用dijkstra算法求出所有点到终点的最短距离,然后用深搜搜索求出路径个
2016-06-26 23:48:02
331
原创 专题四 Problem K
一、题目编号: 1011二、简单题意:Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽
2016-06-26 23:31:46
419
原创 专题四 Problem H
一、题目编号: 1008二、简单题意: 求一个图的最大联通子图,要求每个联通分量最多只有一个环,且所求的边的权值之和最大,输入包括多组样例,每个样例第一行包含n/m两个整数,分别代表图中顶点的个数,边的个数。接下来的m行,每行有三个整数,分别表示一条边的起点和终点及权值,不存在圈不存在重复边,输入00结束。每组样例输出一个整形数,表示最大权值之和三、解
2016-06-23 23:56:00
321
原创 专题四 Problem I
一、题目编号: 1009二、简单题意: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?三、解题思路形成过程 利用上课刚讲的Dijkstra 算法做即可。四、感想 单源最
2016-06-21 21:34:12
349
原创 专题四 Problem F
一、题目编号: 1006二、简单题意: 道路的维护费用太昂贵,The Council of Elders 只能选择维护部分道路,而且这些道路必须能够连通所有的城市。给出城市以及城市之间道路的维护费用,求出最小的维护费用。 三、解题思路形成过程 利用上课刚讲的Kruskal算法做即可,城市是图的顶点,道路的维修费用是两个顶点之间的权值,按
2016-06-19 14:56:02
377
原创 专题四 Problem E
一、题目编号: 1004二、简单题意: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。三、解题思路形成过程 依旧用并查
2016-06-16 23:46:45
404
原创 专题四 Problem D
一、题目编号: 1004二、简单题意: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。三、解题思路形成过程 依旧用并查集来做,按照乡村之间
2016-06-16 11:29:04
294
原创 专题四 Problem C
一、题目编号: 1003二、简单题意: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?三、解题思路形成过程 这个题用并查集来做即可,结点的父节点是本
2016-06-16 00:11:08
354
原创 专题四 Problem B
一、题目编号: 1002二、简单题意: 有n座城市,Eddy最近开始喜欢画画,他非常确定他要成为一名画家。他每天都在他的小房间里画画并且经常把他的画拿给他的朋友欣赏,但是结果出人意料,他的朋友对它的画并不感兴趣。Eddy感觉非常迷惑,为了改变他朋友对他画画技术的看法,Eddy给他的朋友出了一个问题:在画纸上给出一些坐标点,两个点之间用直线相连可以使所有的
2016-06-15 23:40:55
346
原创 专题四 Problem A
一、题目编号: 1001二、简单题意: 有n座城市,每两座城市间可以修一些道路联系起来。城市A和城市B有道路或者它们之间可以通过其它城市的道路连接起来则称为A和B有联系。现在这些城市里已经有一些道路,要把所有的城市联系起来,求要修路的最小长度。三、解题思路形成过程 这个题可以用老师刚讲的并查集来做。有联系的道路组成一个集合,没有
2016-06-14 20:07:35
304
原创 动态规划总结
一、知识点整理(一)、动态规划是解决多阶段策略问题的一种方法,运用最优性原理,排除重复计算,用空间换时间的算法。(二)、动态规划适用的题目类型有以下几个特点: 1.问题具有多阶段的决策 2.每个阶段对应一个状态(状态变量) 3.每个阶段有一个决策(不同的决策导致下一个阶段不同的状态) 4.每个阶段的最优解可以递归地归结为
2016-05-31 22:31:50
388
原创 专题三 Problem W
一、题目编号: 1023二、简单题意: Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(
2016-05-31 22:03:35
497
原创 专题三 Problem X
一、题目编号: 1024二、简单题意: 一个人买东西,现有n个物品和钱m,每个物品有价格p,钱数q,价值v,问最后获得的最大价值。三、解题思路形成过程 01背包问题。开始看这道题,以为就是普通背包,但是WA。最后参考了大神的代码才知道,差值越小使用它的价值越大,要按q-p排序。四、感想 数组的排序函数是利用两
2016-05-31 21:55:24
358
原创 专题三 Problem T
一、题目编号: 1020二、简单题意: 某天HiBix打开钱包发现钱包有一些钱,他决定用这些钱去附近的商店买一块表。他想付刚刚好的钱,并且他知道表的价格在n到m之间,但是他不知道确切的价格。已知n,m治病的种类以及张树,求他支付1到m之间的钱数有多少种情况。三、解题思路形成过程 和完全背包问题很类似。刚开始虽然结果对了,但是一直超时
2016-05-31 21:32:14
315
原创 专题三 Problem S
一、题目编号: 1019二、简单题意: Computer College要分成Computer College和Software college两个大学,他们要把原有的所有设备一分为二。给出设备的数目和价值,尽量使其价格平分成两部分,如果不能平分,分成的前一部分不能低于第二部分。求最终第一部分的价格和第二部分的价值分别是多少。三、解题思路形成过程
2016-05-31 20:59:51
365
原创 专题三 Problem R
一、题目编号: 1018二、简单题意: 不知道存钱罐里面有多少钱,知道存钱罐的重量和各类钱币的重量,求出存钱罐里面最少有多少钱。三、解题思路形成过程 完全背包的变形。。四、感想 感觉这种题就是套公式。。另外,要注意输出结果细节问题!五、AC代码#include#include#i
2016-05-31 20:46:05
318
原创 专题三 Problem E
一、题目编号: 1005二、简单题意: 给出一些木块,把这些木块堆起来,要求上边的木快的长和宽都要严格小于下边。而且每一种木块的数量都是无限的,求用这些木块可以堆起的最大高度。三、解题思路形成过程 因为木块的摆放方式有三种,所以每种木块可以看作三种木块。将木块根据长和宽进行升序排序,先按木块的长升序排列,长相等时再按"宽"升序排列。
2016-05-23 20:35:40
320
原创 专题三 Problem H
一、题目编号: 1008二、简单题意: 给出一个矩形迷宫,yifenfei一开始在左上角,目的是到达右下角的大魔王所在地。迷宫的每一个格子都对应一个值,走到那里便自动得到了对应的值。现在规定yifenfei只能向右或者向下走,向下一次只能走一格。但是如果向右走,则每次可以走一格或者走到该行的列数是当前所在列数倍数的格子,即:如果当前格子是(x,y),下
2016-05-23 20:16:34
393
原创 专题三 Problem G
一、题目编号: 1007二、简单题意: 馅饼掉落在gameboy身旁的10米范围内。gameboy每秒种只有在移动不超过一米的范围内接住坠落的馅饼。为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在0-10这11个位置。开始时gameboy站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置上的馅饼。问gameboy最多可能接
2016-05-23 20:05:54
431
原创 专题三 Problem C
一、题目编号: 1003二、简单题意: 求序列的最长递增子序列全部元素的和。三、解题思路形成过程 求到第i个元素的最长递增子序列的和,依次判断i之前的所有元素,如果第j个元素满足递增且当前的sum[i]小与前面中的sum[j]+当前的数value[i],那么sum[i]为最长递增子序列的和,当前value[i]必选。每次循环保存最
2016-05-23 13:15:51
264
原创 专题三 Problem D
一、题目编号: 1004二、简单题意: 因子只有2,3,5,7的数称为humble number,输出第n个humble number。三、解题思路形成过程 初始化算出所有的humble number存起来,输出即可。四、感想 题目不难,但是细节很重要。要注意最后的输出格式!!五、AC代码#inc
2016-05-23 12:54:47
308
原创 专题三 Problem B
一、题目编号: 1002二、简单题意: 求出两个串的最长公共子序列的长度。三、解题思路形成过程 01背包问题。 1)若s1[ i ]=s2[ j ],那么就转化成了对 s1[ i -1 ] 和 s2[ j -1 ] 两个字符串的子问题,f( i , j)=f( i-1 , j-1 ) + 1 2
2016-05-17 10:03:24
498
原创 专题三 Problem Q
一、题目编号: 1017二、简单题意: 有N件骨头和一个容量为V的背包。知道这n个骨头的体积和价值,求解将哪些骨头装入背包可使价值总和最大。三、解题思路形成过程 01背包问题,特点是:每个骨头仅有一件,可以选择放或不放。枚举每种可能的情况,选择价值最大的即可。用f[i][v]表示前i件骨头恰放入一个容量为v的背包可以获得的最大价值
2016-05-17 09:27:23
550
原创 专题三 Problem P
一、题目编号: 1015二、简单题意: 在一无限大的二维平面中,我们做如下假设: 1、每次只能移动一格; 2、不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走); 3、 走过的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被
2016-05-08 13:13:19
437
原创 专题三 Problem O
一、题目编号: 1015二、简单题意: 十进制数转换为二进制数。三、解题思路形成过程 很简单,知道十进制怎么转化为二进制就解决了。四、感想 简单,水题。五、AC代码#includeusing namespace std;int main(){ int n,a,b,v
2016-05-08 12:54:52
322
原创 专题三 Problem A
一、题目编号: 1001二、简单题意: 给出一个序列a[1],a[2],a[3],…,a[N],求从该序列中取出连续一个子段,使这个子段的和最大。三、解题思路形成过程 老师上课讲过这个题,思路很清晰。sum表示当前所算序列的和,maxsum表示序列的最大和。边循环输入边判断,如果当前的和小于0,就放弃这个序列,否则就加上当前数,比
2016-05-08 12:40:56
303
原创 专题三 Problem F
一、题目编号: 1006二、简单题意: n层的数塔,第i层有i个整数。要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?三、解题思路形成过程 用二维数组来表示数塔,涉及到的超出边界的结点初始化为0;走到结点node[i][j]有两种情况,从node[i-1][j-1]走过去或者从node[i-1]
2016-05-05 10:53:58
492
原创 专题三 Problem J
一、题目编号: 1010二、简单题意: 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?三、解题思路形成过程 由于每次只能向上跨一级或两级,所以要走到第i级有两种情况,从第i-1级跨一级上去或者第i-2级跨两级上去。所以走到第i级的方法等于走到第i-1级的方法加上走到第i-2级的方法。
2016-05-05 09:25:46
358
原创 专题三 Problem N
一、题目编号: 1014二、简单题意: 求n条折线分割平面的最大数目。三、解题思路形成过程 先分析下直线分割平面的情况,增加第n条直线的时候,跟之前的直线最多有n-1个交点,此时分出的平面多出了(n-1)+1;折线也是同理,f(1)=2,先画好前面n-1条折线,当增加第n条拆线时,此时与图形新的交点最多有2*2(n-1)个,所以
2016-05-05 09:10:27
330
原创 专题三 Problem M
一、题目编号: 1013二、简单题意: 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?三、解题思路形成过程 由于每头新牛从第四个年头开始,每年年初也生一头新牛,通过找规律易知,第n年的新牛数等于第n-1年的新牛数加n-3年的新牛数。要想知道第n年
2016-05-04 23:13:16
454
原创 专题三 Problem L
一、题目编号: 1012二、简单题意: 在2×n的一个长方形方格,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数。三、解题思路形成过程 用v[i]表示2*i的方格一共有组成的方法数,i块方格就是I-1块方格再加一块。横着铺,如果前面i-1块方格已经铺好,则第I块方格只有一种铺法;竖着铺,前面i-2块方格已经铺好,也只
2016-05-04 20:42:51
282
原创 专题三 Problem K
一、题目编号: 1011二、简单题意: 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。计算蜜蜂从蜂房a爬到蜂房b的可能路线数。三、解题思路形成过程 要想知道从a到b可能的路线数就需要知道到达b-1的路线数和b-2的路线数,递归回去即可。注意观察规律,对于a不等于1的情况都可以转化为a为1来做。四、感想
2016-05-03 23:04:44
322
原创 搜索算法总结
又是一个专题的结束了,这个专题学的是搜索算法。老师上课讲理论知识的时候觉着好简单啊,也很容易理解,但是一到实际应用上,一做题就懵了。 搜索有两种:首先是广度优先搜索--BFS。BFS的主要思想是逐层搜索,层层进行。对每层的结点进行检查,一层一层向下展开,直到出现目标状态为之。而深度优先搜索--DFS的主要思想是逐个分支进行搜索,将一个分支进行到底,然后再反过头来执行下一个分支。
2016-04-25 09:47:56
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人