![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uva 例题
uva中各种有意义的例题
fall__rain
这个作者很懒,什么都没留下…
展开
-
UVA 10305 例题6-15
拓扑排序定义:在一个有向图中对每一个节点进行排序,使其每一个节点都不会指向前面的节点就是拓扑排序。(根据定义很容易得到有环的话是无法进行拓扑排序的。)由于有些节点之间并无直接联系,所以节点无法比较其大小,但知道其大致放在那个方位。如:若有4个变量,已知a<b,c<b,d<c则四个变量的大小关系可以为a<d<c<b也可以为d<a<c<b。拓扑排序的方法可以分为两种:kahn算法将节点看成有向联通图每一个节点都有一个入度每个节点都原创 2020-08-24 21:47:01 · 137 阅读 · 0 评论 -
uva 572 例题6-12
用dfs求连通块//// Created by fallrain on 2020/8/17.//#include<bits/stdc++.h>using namespace std;char c[105][105];bool st[105][105];int m,n;int cnt=0;void dfs(int x,int y){ if(x<0||x>=m||y<0||y>=n) return; if(c[x][原创 2020-08-17 21:33:36 · 110 阅读 · 0 评论 -
uva297 例题6-11(计算有限面积)
uva297计算技巧:哈希思想(空间换时间)我写这一题的第一思维是,用二维数组存树,两颗树的每一层都表示出来,节点数不足的数将其补全。如:第三层应该是16个叶子,但是表示出来的叶子只有8个。那说明上一层的节点肯定有白节点或者黑节点,那么补全这一层得应该是4个黑4个白。且两棵树一定要一样深,但是要完成这些操作过于复杂(首先需要先构造本来的两颗树,齐次需要补全两颗树(至此两棵树的最高层均为黑,白),再然后将两棵树的最高层相加(黑+黑=黑,白+黑=黑,白+白=白))得到最高层一个黑代表的面积,即可得到全部黑的原创 2020-08-17 17:13:10 · 116 阅读 · 0 评论 -
UVA 122 例题 6-7
根据紫书,与vjudge上的大佬的代码写出来的代码,惭愧!!PS:udebug尽管比较好,但是其中的样例不一定是对的,本题udebug中得到的结果并不对,不可ac。经典建树的题,可以分为几个方面:节点的各个信息 struct node创立新节点 node * newnode()创建新节点,并返回其指针添加新节点, 节点不存在时,创建新节点,存在时,跳过用BFS遍历,queue来存每一层的节点的指针,并以此来输出需要输出的值,按层遍历。#include <iostream>原创 2020-08-13 16:25:17 · 83 阅读 · 0 评论 -
UVA 679 例题6-6
UVA679 小球下落关键:对于一个节点k,它的左节点为2k,它的右节点为2k+1.若写模拟程序必超时,所以需要找其中的规律。纸上下落可以看出,第I个小球,若I为奇数则它是向左边走的第(I+1)/2个小球,若I是偶数,则它是向右边走的第I/2个小球。可以得到代码#include <iostream>#include<cstring>#include<cstdio>using namespace std;int D,I;long long num;原创 2020-08-13 09:54:33 · 84 阅读 · 0 评论 -
UVA 12657 例题6-5
uva12657此题用数组完成伪链表,用stl -list写,会超时注意:执行翻转操作时,若真的将其全部翻转会超时。应记录下翻转次数,若翻转次数为奇次,则操作1与操作2互换。翻转为偶次时,操作为1时,若x在y左侧,则continue;操作为2时,若x在y右侧,则continue;翻转为奇次时,操作为1时,若x在y右侧,则continue;操作为2时,若x在y左侧,则continue;操作为3时,x,y相连的操作与x,y不相连的操作不同。#include<bits/stdc++.h原创 2020-08-13 08:09:42 · 88 阅读 · 0 评论