![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他oj平台算法题
peterchen96
考研中
展开
-
UVa272,UVa401,UVa10082
UVa272 Tex Quotes用来熟悉输入输出的题,给一段文字,用getchar一个一个读并判断。使用q作为标志,碰到第一个双引号,变换一下输出,q取反碰到第二个双引号,变换输出,q取反代码:#include using namespace std;int main(){ bool q = 0; char it; while((it原创 2018-01-26 11:46:07 · 261 阅读 · 0 评论 -
UVa679 完全二叉树编号
这题我也是用了两种方法,第一种比较常规,但超时,第二种比较讨巧暴力求解(超时)运用完全二叉树的性质,对于结点k,左子结点编号2k,右子结点编号2k+1,用一个数组表示当前每个结点状态,然后模拟每个小球的下落过程代码实现#include using namespace std;const int maxDeep = 20;int main(){ int原创 2018-02-04 23:39:25 · 407 阅读 · 0 评论 -
UVa11988 链表简单应用
这题尝试了两种方法,一是书上说的用数组来实现链表相关操作,一种是利用指针形式的链表实现使用数组模拟链表1.使用字符数组c储存一行中每个字符的值 2.使用数组next储存下一个字符的位置,可以看成c[i]和next[i]共同构成链表中的一个结点(所以next[0],c[0]对应的是头节点) 3.设当前字符的上个字符所在位置为cur初始值为0,当字符不是‘[‘和’]’时利用cur做普通的插原创 2018-02-04 23:23:58 · 205 阅读 · 0 评论 -
UVa210 双端队列deque
采用数据结构与大概流程Deque:支持在首尾两端插入和删除 阻止队列:queue,只需要从后部插入前端取出 执行队列:因为需要从前端插入,所以采用deque 1.读入n段程序,将1-n压入执行队列中 2.如果执行队列不空时一直执行程序 3.当分配时间没用完时始终执行当前程序 4.执行不同指令 将字符串中数字转变为int型的方法: int a=stoi(string.substr原创 2018-02-04 23:08:31 · 293 阅读 · 0 评论 -
UVa1592 map妙用,简化复杂数据
采用数据结构与大概流程1.输入r,c行列两个参数(注意getline之前需要getchar一下) 2.读入一行,并分割成c个字符串,为了简化操作,给每个字符串分配一个ID(跟UVa12096一样) 3.从第一列开始,两列两列,一行一行枚举,把两列字符串的值存入map 中,如果发现map中已经有对应的二元组则返回不满足,否则继续枚举主要用map进行每行对比,并把复杂的字符串比较化为数字比原创 2018-02-04 20:52:02 · 209 阅读 · 0 评论 -
UVa540 队列 UVa136 优先队列
UVa540采用数据结构与大概流程1.使用map 来保存队伍序号与队员的关系 2.用queue 来模拟队列的操作 不难代码实现#include#include#include #include using namespace std;int main(){ int N, t; int num; int count = 1;原创 2018-02-04 20:35:37 · 188 阅读 · 0 评论 -
UVa12096 把复杂数据化为对应的整数表达 STL
采用数据结构与大概流程1.采用stack模拟栈的操作 2.采用vector保存所有的set 3.采用map 保存每个Set对应的int值 findNum函数用来寻找map中是否有Set值,如果有则返回这个值,如果没有则根据vector的长度新分配一个 空集用Set()生成,对应ID为1 如{{},{{}},{{{}}}} 这种复杂的集合的集合形式可以化简为{1,2,3},同时给{1原创 2018-02-04 20:19:06 · 201 阅读 · 0 评论 -
UVa156 复杂数据结构标准化思路
采用数据结构与大概流程1.采用了vector保存输入的每个单词 2.对输入的每个单词进行标准化,即转成小写,并按字典序排序,保存在map代码实现#include #include #include #include #include #include using namespace std;string standard(const string &s){原创 2018-02-04 19:57:39 · 223 阅读 · 0 评论 -
UVa232 Crossword Answers
UVa232采用数据结构与大概流程这题与UVa227比较相似 1.因为要输出横向的单词与纵向单词,所以采用两个map来分别记录搜索到的单词和单词首字母所在的位置 2.同样不知道要解答多少个字谜,所以还是while(true)的结构 3.同样要注意输入输出格式问题,比如当输入“1 1 *”时没有单词,但要注意Across和Down也是要输出的,还有序号十位数与个位数前的空格不同算法原创 2018-01-26 20:01:41 · 376 阅读 · 0 评论 -
UVa227 Puzzle
UVa227采用的数据结构和大体流程1.这题,因为固定是5*5的网格,我采用的方法是用一个string数组来记录输入的网格 2.因为不知道要输入多少组puzzle,所以用while(true)并在检测到Z时break出去 3.使用getline可以记录输入的空格信息 4.要注意最后输出格式具体算法1.输入一个puzzle,边输边检测空格,并记录空格的位置。 2.输入指令原创 2018-01-26 19:45:47 · 174 阅读 · 0 评论 -
UVa1583,UVa1584(环形数组)
uva1583,uva1584解原创 2018-01-26 12:02:31 · 410 阅读 · 0 评论 -
UVa122 二叉树动态创建与BFS
这题就是定义了二叉树的结点类型,然后由根节点开始通过解析表达式LR……生成一个树 注意判断一个结点是否被多次赋值,题目要求一个节点多次赋值最后答案要输出错误结论,提交的时候曾经因为这个问题WA了 树的BFS:通过队列实现,一开始先把根节点push,当队列不为空时取出队列头保存,把它的左子结点和右子节点push进队,就可以完成树的层次遍历代码实现#include #include原创 2018-02-04 23:48:05 · 189 阅读 · 0 评论