![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pat-数据结构
要认认真真
这个作者很懒,什么都没留下…
展开
-
02-2
/* title:02-2 问题分类: 没有0项判断结束 求导倒着改, 对于0项不输出 ,但是输入 没有0项 */ 还有一个测试点没有过 http://www.patest.cn/contests/mooc-ds/02-2 #include struct t{ int xi; int zhi; }a[10000]; int m原创 2015-01-09 11:04:42 · 238 阅读 · 0 评论 -
06-2
http://www.patest.cn/contests/mooc-ds/06-2 注意1 使用vector,用vs调试,监视v不能完全显示邻接表,只能监视v[0],v[1],v[2],这样才能完全显示 注意2 单源最短路径,有2层循环 //第一层循环,n-1次 newp = x; for(int i=0;i<n-1;i++){ //里面有2个小循环,共3步 //第1步,小循环1:原创 2015-01-24 10:10:23 · 235 阅读 · 0 评论 -
05-3
http://www.patest.cn/contests/mooc-ds/05-3 题目中有10000个点,边更多,若用邻接矩阵,双重循环必超时,因此用vector 遍历还是用模板 错误一:dfs遍历,最后一个点不过 由于dfs调用系统栈,最多15000,而边可能会有很多,所以不过 错误二:什么时候层数更新 改用bfs,用tail不断记录队尾,用last表示本层的最后一个节点,只有当原创 2015-01-21 11:32:01 · 258 阅读 · 0 评论 -
05-2
换了vs 终于大致知道怎么用了,想念cfree啊 进入到了图,开始感觉简单到爆,事实证明我错了 图,先考虑用什么数据结构, g[max][max] 还有一种用vector容器的,后面有习题 05-2 有一个测试点没过 http://www.patest.cn/contests/mooc-ds/05-2 我的错误主要是 1.对dfs不熟悉 void dfs(int x){原创 2015-01-20 15:47:47 · 294 阅读 · 0 评论 -
04-1
啊啊啊啊,被折磨的遍体鳞伤,最后参考老师给的代码写出些来 所以坚持就是一定能看到希望,永远不能放弃 http://www.patest.cn/contests/mooc-ds/04-1 犯的错误: 1. struct tree{ int data; int left; int right; int height; }t[MAX]; 这里我用left,right存储的是数字,原创 2015-01-15 17:43:25 · 227 阅读 · 0 评论 -
04-2
莫名的一坑 http://www.patest.cn/contests/mooc-ds/04-2 数据太大,要用压缩路径 int findRoot(int x){ if(a[x]==-1){ return x; }else{ int tmp=findRoot(a[x]); a[x]=tmp;//路径压缩 return tmp; } } /* title:原创 2015-01-16 09:56:09 · 226 阅读 · 0 评论 -
03-2
/* 竟然段错误,不解 */ #include #include #include struct btnode{ struct btnode *lchild; struct btnode *rchild; int data; bool isroot; }*list[20]; int zu; int exchange(char a[原创 2015-01-10 21:19:45 · 314 阅读 · 0 评论 -
03-3
好吧,又一个不明白的 最普通的栗子不过 http://www.patest.cn/contests/mooc-ds/03-3 /* title: 问题分类: */ #include #include int stack[40]; int top=-1; int gettop(){ return stack[top]; } int pop(){ return stack[top原创 2015-01-12 13:40:08 · 262 阅读 · 0 评论 -
02-3
哈哈哈哈哈~竟然一次过!!! 不过样例确实给了很多提示 参考了别人代码 /* title:02-3 问题分类: 新思路: 1.倒着看,遇到数字进栈,运算符出操作数2个 2.对于数字,就当做无小数点,直到遇到小数点,除以该权值,重置权值,再算 3.数字正负问题 */ #include #include double ss[40]; int top=-1; void p原创 2015-01-10 21:42:41 · 264 阅读 · 0 评论 -
01-2
有个测试点还是没有过,可能是0和一堆负数的问题 http://www.patest.cn/contests/mooc-ds/01-2 /* title:01-2 问题分类:最大子序列 */ #include int main(){ freopen("in.txt","r",stdin); int zu; int a[10001];原创 2015-01-07 13:33:20 · 220 阅读 · 0 评论 -
03-1
/* title: 问题分类: */ 科学计数法1e-3 判断边界 http://www.patest.cn/contests/mooc-ds/03-1 #include #include double a1,a2,a3,a4; double f(double x){ return a1*pow(x,3)+a2*pow(x,2)+a3*x+a4原创 2015-01-09 16:36:05 · 245 阅读 · 0 评论 -
02-1
/* title: 问题分类: 1.有多个-1 2.只有一个节点 3.翻转全部节点,最后改-1 对于1始终不过,5ab10010是段错误 */ http://www.patest.cn/contests/mooc-ds/02-1 #include struct t{ int add; int data; int n原创 2015-01-09 11:06:12 · 223 阅读 · 0 评论 -
06-3
http://www.patest.cn/contests/mooc-ds/06-3 用并查集找最小生成树 注意 1.路径压缩 //找到x的根节点 int findr(int x){ //如果该节点为根节点,返回本身 if(root[x]==-1){ return x; }else{ int tmp=findr(root[x]); //压缩路径 root[x]=tmp原创 2015-01-24 11:21:15 · 344 阅读 · 0 评论