![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
文章平均质量分 76
sser_rxq
努力学习成长的新人
展开
-
查错 0
题目:题目大意:输入分数,排序,用 * 表示重复分数个数。实际就是制作条形图。问题代码#includevoid sort(int a[], int n);int main(){ int a[100], i, j,counter; for(i=0; scanf("%d",&a[i]) !=EOF; i++) // i 的原创 2012-02-19 00:38:55 · 324 阅读 · 0 评论 -
7-11 关键活动(二)
7-11 关键活动鉴于我开始的做法不太好,dfs遍历了起点和终点间的全部路径,虽然是可以找到关键路径的,但是还要去重之后才能得到结果。于是尝试经典的关键路径算法: 1、通过拓扑排序计算出每个节点的最早开始时间,以及一个拓扑序列S2、反向遍历拓扑序列S计算出最晚开始时间3、节点的最早开始时间 == 最晚开始时间, 说明这节点就是瓶颈了,也就是关键节点 计算最晚开始时间...原创 2017-04-03 12:34:08 · 607 阅读 · 0 评论 -
数据结构mooc课小结(1)
第一课, 讲了最大子序列和的算法。 从O(n^3) 逐步讲解到O(n) 的算法。O(n^3) 和 O(n^2) 的算法非常直白,无需赘述。O(n log n)的分治法,值得去实现, 锻炼一下代码能力。主要思路是: 二分的时候,目标序列只可能有三种情况: 左边,右边,横跨分界线。选三者中最大的就好了。我觉得最核心的就是怎么处理 横跨分界线的情况,这个是我一开始没想原创 2017-05-15 11:23:27 · 442 阅读 · 0 评论 -
数据结构mooc课小结(2.1)
这节课讲的是线性表。两种实现方法:数组、链表。 针对主要的操作:查找指定元素值,获取指定位置的元素,删除,插入,获得长度。以表示多项式为例,需要保存系数和指数。用数组下标表示指数,合并同类项的时候,找同类项就比较方便,去下标就好了。但是空间浪费的问题严重,如果指数的跨度比较大,那么大部分元素都是0。而且灵活性不足,不能表示负指数。链表则相反,灵活性有了,但是查找原创 2017-05-15 18:35:39 · 383 阅读 · 0 评论 -
2017-9-17 PAT考试记
昨天去考pat,居然四题都一次ac了~~小激动,之前自己模拟测都是 八九十,有些测试用例死活想不到错误原因。第一题 1132. Cut Integer,简单题。测试的时候想到了除零的情况。#include <cstdio>#include <cstdlib>#include <vector>#include <cstring>#in...原创 2017-09-18 10:55:15 · 5124 阅读 · 0 评论 -
7-29 修理牧场
7-29 修理牧场题目大意,总长度L的木板,分为n块,每块ai长度。切割的酬劳等于被切木板长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。 一开始想了个错误的方法,排序之后,递归的分割木板。每次把木板尽量均匀的切分两段。#include <cstdio...原创 2017-06-05 19:20:36 · 642 阅读 · 0 评论 -
PAT 1001~1017题小结
1002. A+B for Polynomials 50min 自制链表归并所以用时多。如果用数组/std::list会快很多 1003. Emergency 很久 读题不够准确。 方法也一般般, dijk+dfs。 实际一次dijk就可以得到 1004. Counting Leaves 30min 遍历多叉树 1...原创 2018-09-05 12:05:39 · 179 阅读 · 0 评论 -
1021. Deepest Root
1021. Deepest Root 题目简述:输入一副无向图,判断是否为树,如果是树,则需要找出全部令树高最大的根(很可能不唯一)51 21 31 42 5五个节点的树,这里3 4 5作为根都可以得到最高的树。 暴力做法:把每一个节点作为根求一次树高。 DFS求树高很方便,代码简洁。复杂度O(n)。因此n个节点,总的复杂度就是O(n^2)后台的例子没有卡暴力做法,...原创 2017-06-01 00:50:03 · 309 阅读 · 0 评论 -
拓扑排序小记
两种拓扑排序方法: dfs和bfs的。 先看bfs, 核心在于维护节点的剩余入度(这个词是自造的,因为入度不为0的节点的全部前继节点都被遍历过之后,该节点入度就变为0了)每次搜索都把 剩余入度为0的节点 添加进拓扑序列末尾。 因为这个时候,他的前继节点已经都在拓扑序列中了。 剩余入度怎么维护?首先搜索的起始点必定是入度为0的点,其他节点的剩余入度初始化为入度值。每当节...原创 2017-04-03 23:59:21 · 239 阅读 · 0 评论 -
PAT 1131 Subway Map
1131 Subway Map这题输入地铁路线图,图中没有自环,但是有环。地铁线有交叉点,即中转站。 但是一个中转站最多只有5条线交叉重要的信息 Each station interval belongs to a unique subway line, 也就是相邻站点的这一段线路只可能属于一条线。输出:最优路线站数 (站数最少,尽量换乘最少)Take Line#3 from 1...原创 2018-09-05 21:05:11 · 185 阅读 · 0 评论 -
7-11 关键活动(一)
7-11 关键活动假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因...原创 2017-03-07 23:13:30 · 6822 阅读 · 0 评论 -
我学习Dijkstra 算法的过程
网上有看到 Dijkstra算法和 动态规划啦,贪心啦什么的有关。一开始一头雾水的,怎么就和动态规划有关? 哪来的最优子问题结构? 后来经过手动跟一遍 Dijkstra过程,突然醒悟到: 如果 P = A1 A2 ... An 是最A1 到An的最短路, 那么 P 包含了其中任意两点之间的最短路。否则如果P的两点 Ai Aj 之间存在更短的路, 那么总可以替换掉,从而令P更短。原创 2017-03-07 13:04:06 · 2003 阅读 · 0 评论 -
c传递二维数组参数
一开始看 《c专家编程》 讨论二维数组时,并没有太明显的感觉。后来自己写一些与矩阵相关的小程序,发现要很完美的传递 二维数组实在麻烦。我用过两种方法:1. 除了最高维可以在形参中忽略,其他都要已知。2. 形参直接就是一维数组,利用c数组布局方式,把多维数组映射为一维数组,自己手动计算,数组的各维长度作为参数传入。 a[n][m][p] =原创 2013-07-24 13:19:15 · 692 阅读 · 0 评论 -
c 结构体初始化
在《系统程序员成长计划》看到的,好像有点道理。// 声明 struct s{ int a; double b,c;}; // 习惯的初始化 struct s h = { 1, 2}; 这种初始化是按结构体成员声明的顺序进行初始化的,即利用了struct内存原创 2013-07-24 14:21:25 · 635 阅读 · 0 评论 -
USACO 刷题调试0
调试,装逼的说就是透过现象看本质。运行结果不对,根据和 预期的差异 猜测判断问题可能在哪。如果可能太多,就要逐步缩小范围。打印语句,设置断点,输出到文件等等方式。这就是为什么要 避免滥用全局变量的原因(之一)。全局变量受到的影响太多,被重名变量隐藏,被某些函数修改(可能是本文件外的函数),这样会增大调试范围,也可能造成难以再现的错误结果,调试的难度大增。下面这题是USACO原创 2013-07-27 15:57:12 · 760 阅读 · 0 评论 -
USACO Section 1.4 packrec
一开始无从下手的一题。1. 四个矩形摆放,有多少种最基本的方式? 题目给了6种基本型.我按照 矩形上方的矩形数目 来分类。原创 2013-08-03 23:49:53 · 676 阅读 · 0 评论 -
sicily 1024 magic island
发现n年前草稿。。最直接思路就是深搜,用 T *g[] 这种形式来构造邻接链表,注意是无向图。从出发点开始搜,标记已访问点,遍历未访问的邻接点,把所有可能都计算一次,全局变量记录最大距离。很不幸,不知为何超时。(后来发现时忘记 把图清空了) 后来想了想,似乎没说图中有无环,有无孤立点。应该做访问标记的是 边,而不是点。于是开始胡思乱想怎么才能快速判断 边 是否已访问。...原创 2018-09-16 23:56:39 · 255 阅读 · 0 评论 -
一个list的 调试 再思考 改进 (1)
这段代码目的: 构造有序链表, 实现 merge 操作,将两个有序表合并,并且去重.例子: A: 1 2 2 3 B: 1 3 5 8合并得CC: 1 2 3 5 8 下面代码有一句错了,导致段错误,如何调试呢/ #include <cstdio>#include <algorithm>class my_li...原创 2018-09-05 14:06:12 · 103 阅读 · 0 评论 -
PAT 1038 Recover the Smallest Number
1038 Recover the Smallest Number 大意:输入n个数字串, 输出这些串拼接成的最小的数字 32 321 3214 0229 87 能拼出的最小整数 229 321 3214 32 87一开始的思路想的太简单,以为把数字串排个字典序即可。 试了一下就知道,按这个思路拼出来的是 229 32 321 3214 87, 显然不对。然后我的思路就开始歪了。想...原创 2018-09-06 17:58:47 · 152 阅读 · 0 评论